Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
editors
tree-sitter-lua
tree-sitter-lua-0.2.0.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File tree-sitter-lua-0.2.0.obscpio of Package tree-sitter-lua
07070100000000000081A400000000000000000000000166DF0FCB000001C5000000000000000000000000000000000000002400000000tree-sitter-lua-0.2.0/.editorconfigroot = true [*] charset = utf-8 [*.{json,toml,yml,gyp}] indent_style = space indent_size = 2 [*.js] 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 07070100000001000081A400000000000000000000000166DF0FCB0000010F000000000000000000000000000000000000002500000000tree-sitter-lua-0.2.0/.gitattributes* text=auto eol=lf src/*.json linguist-generated src/parser.c linguist-generated src/tree_sitter/* linguist-generated bindings/** linguist-generated binding.gyp linguist-generated setup.py linguist-generated Makefile linguist-generated Package.swift linguist-generated 07070100000002000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000001E00000000tree-sitter-lua-0.2.0/.github07070100000003000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002800000000tree-sitter-lua-0.2.0/.github/workflows07070100000004000081A400000000000000000000000166DF0FCB00000C1C000000000000000000000000000000000000002F00000000tree-sitter-lua-0.2.0/.github/workflows/ci.ymlname: CI on: push: branches: [main] paths: - grammar.js - src/** - test/** - bindings/** - binding.gyp pull_request: paths: - grammar.js - src/** - test/** - bindings/** - binding.gyp concurrency: group: ${{github.workflow}}-${{github.ref}} cancel-in-progress: true jobs: test: name: Test parser runs-on: ${{matrix.os}} strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-14] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install tree-sitter CLI uses: tree-sitter/setup-action/cli@v1 - name: Run tests uses: tree-sitter/parser-test-action@v2 with: test-rust: ${{runner.os == 'Linux'}} test-node: true test-python: true test-go: true test-swift: ${{runner.os == 'macOS'}} - name: Clone apisix corpus uses: actions/checkout@v4 with: path: examples/apisix repository: apache/apisix sparse-checkout: apisix/ - name: Clone kong corpus uses: actions/checkout@v4 with: path: examples/kong repository: Kong/kong sparse-checkout: kong/ - name: Clone lua corpus uses: actions/checkout@v4 with: path: examples/lua repository: lua/lua sparse-checkout: testes/ - name: Clone luvit corpus uses: actions/checkout@v4 with: path: examples/luvit repository: luvit/luvit - name: Clone neovim corpus uses: actions/checkout@v4 with: path: examples/neovim repository: neovim/neovim sparse-checkout-cone-mode: false sparse-checkout: |- /test/**/*.lua /scripts/**/*.lua /runtime/**/*.lua - name: Clone xmake corpus uses: actions/checkout@v4 if: runner.os != 'Windows' with: path: examples/xmake repository: xmake-io/xmake - name: Parse examples uses: tree-sitter/parse-action@v4 with: files: |- examples/apisix/**/*.lua examples/kong/**/*.lua examples/lua/**/*.lua examples/luvit/**/*.lua examples/neovim/**/*.lua examples/xmake/**/*.lua invalid-files: |- examples/neovim/test/functional/fixtures/lua/syntax_error.lua fuzz: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 2 - name: Check for scanner changes id: scanner-changes run: |- if git diff --quiet HEAD^ -- src/scanner.c; then printf 'changed=false\n' >> "$GITHUB_OUTPUT" else printf 'changed=true\n' >> "$GITHUB_OUTPUT" fi - name: Fuzz parser uses: tree-sitter/fuzz-action@v4 if: steps.scanner-changes.outputs.changed == 'true' 07070100000005000081A400000000000000000000000166DF0FCB0000022A000000000000000000000000000000000000003400000000tree-sitter-lua-0.2.0/.github/workflows/publish.ymlname: Publish package on: push: tags: ["*"] jobs: npm: uses: tree-sitter/workflows/.github/workflows/package-npm.yml@main with: package-name: "@tree-sitter-grammars/tree-sitter-lua" secrets: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} crates: uses: tree-sitter/workflows/.github/workflows/package-crates.yml@main secrets: CARGO_REGISTRY_TOKEN: ${{secrets.CARGO_TOKEN}} pypi: uses: tree-sitter/workflows/.github/workflows/package-pypi.yml@main secrets: PYPI_API_TOKEN: ${{secrets.PYPI_TOKEN}} 07070100000006000081A400000000000000000000000166DF0FCB0000013A000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/.gitignore# Rust artifacts target/ # Node artifacts build/ prebuilds/ node_modules/ *.tgz # Swift artifacts .build/ Package.resolved # Go artifacts _obj/ # Python artifacts .venv/ dist/ *.egg-info *.whl # C artifacts *.a *.so *.so.* *.dylib *.dll *.pc # Example dirs /examples/*/ # Grammar volatiles *.wasm *.obj *.o 07070100000007000081A400000000000000000000000166DF0FCB0000000F000000000000000000000000000000000000002600000000tree-sitter-lua-0.2.0/.prettierignorebindings/ src/ 07070100000008000081A400000000000000000000000166DF0FCB0000001A000000000000000000000000000000000000002700000000tree-sitter-lua-0.2.0/.prettierrc.json{ "singleQuote": true } 07070100000009000081A400000000000000000000000166DF0FCB000008D0000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/Cargo.lock# This file is automatically @generated by Cargo. # It is not intended for manual editing. version = 3 [[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.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b62ac837cdb5cb22e10a256099b4fc502b1dfe560cb282963a974d7abd80e476" 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.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", "regex-automata", "regex-syntax", ] [[package]] name = "regex-automata" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", "regex-syntax", ] [[package]] name = "regex-syntax" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "shlex" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "tree-sitter" version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20f4cd3642c47a85052a887d86704f4eac272969f61b686bdd3f772122aabaff" dependencies = [ "cc", "regex", "regex-syntax", "tree-sitter-language", ] [[package]] name = "tree-sitter-language" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2545046bd1473dac6c626659cc2567c6c0ff302fc8b84a56c4243378276f7f57" [[package]] name = "tree-sitter-lua" version = "0.2.0" dependencies = [ "cc", "tree-sitter", "tree-sitter-language", ] 0707010000000A000081A400000000000000000000000166DF0FCB00000290000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/Cargo.toml[package] name = "tree-sitter-lua" description = "Lua grammar for tree-sitter" version = "0.2.0" license = "MIT" readme = "README.md" keywords = ["incremental", "parsing", "tree-sitter", "lua"] categories = ["parsing", "text-editors"] repository = "https://github.com/tree-sitter-grammars/tree-sitter-lua" authors = ["Munif Tanjim <hello@muniftanjim.dev>"] edition = "2021" autoexamples = false build = "bindings/rust/build.rs" include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"] [lib] path = "bindings/rust/lib.rs" [dependencies] tree-sitter-language = "0.1.0" [build-dependencies] cc = "1.1.18" [dev-dependencies] tree-sitter = "0.23" 0707010000000B000081A400000000000000000000000166DF0FCB00000437000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/LICENSE.mdThe MIT License (MIT) Copyright (c) 2021 Munif Tanjim Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 0707010000000C000081A400000000000000000000000166DF0FCB00000E62000000000000000000000000000000000000001F00000000tree-sitter-lua-0.2.0/Makefileifeq ($(OS),Windows_NT) $(error Windows is not supported) endif VERSION := 0.2.0 LANGUAGE_NAME := tree-sitter-lua # repository SRC_DIR := src PARSER_REPO_URL := $(shell git -C $(SRC_DIR) remote get-url origin 2>/dev/null) ifeq ($(PARSER_URL),) PARSER_URL := $(subst .git,,$(PARSER_REPO_URL)) ifeq ($(shell echo $(PARSER_URL) | grep '^[a-z][-+.0-9a-z]*://'),) PARSER_URL := $(subst :,/,$(PARSER_URL)) PARSER_URL := $(subst git@,https://,$(PARSER_URL)) endif endif 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 := $(word 1,$(subst ., ,$(VERSION))) SONAME_MINOR := $(shell sed -n 's/#define LANGUAGE_VERSION //p' $(PARSER)) # OS-specific bits ifeq ($(shell uname),Darwin) SOEXT = dylib SOEXTVER_MAJOR = $(SONAME_MAJOR).$(SOEXT) SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).$(SOEXT) LINKSHARED := $(LINKSHARED)-dynamiclib -Wl, ifneq ($(ADDITIONAL_LIBS),) LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS), endif LINKSHARED := $(LINKSHARED)-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 := $(LINKSHARED)-shared -Wl, ifneq ($(ADDITIONAL_LIBS),) LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS) endif LINKSHARED := $(LINKSHARED)-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|@URL@|$(PARSER_URL)|' \ -e 's|@VERSION@|$(VERSION)|' \ -e 's|@LIBDIR@|$(LIBDIR)|' \ -e 's|@INCLUDEDIR@|$(INCLUDEDIR)|' \ -e 's|@REQUIRES@|$(REQUIRES)|' \ -e 's|@ADDITIONAL_LIBS@|$(ADDITIONAL_LIBS)|' \ -e 's|=$(PREFIX)|=$${prefix}|' \ -e 's|@PREFIX@|$(PREFIX)|' $< > $@ $(PARSER): $(SRC_DIR)/grammar.json $(TS) generate --no-bindings $^ 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 0707010000000D000081A400000000000000000000000166DF0FCB00000688000000000000000000000000000000000000002400000000tree-sitter-lua-0.2.0/Package.swift// swift-tools-version:5.3 import PackageDescription let package = Package( name: "TreeSitterLua", products: [ .library(name: "TreeSitterLua", targets: ["TreeSitterLua"]), ], dependencies: [ .package(url: "https://github.com/ChimeHQ/SwiftTreeSitter", from: "0.8.0"), ], targets: [ .target( name: "TreeSitterLua", dependencies: [], path: ".", exclude: [ "Cargo.toml", "Makefile", "binding.gyp", "bindings/c", "bindings/go", "bindings/node", "bindings/python", "bindings/rust", "prebuilds", "grammar.js", "package.json", "package-lock.json", "pyproject.toml", "setup.py", "test", "examples", ".editorconfig", ".github", ".gitignore", ".gitattributes", ".gitmodules", ], sources: [ "src/parser.c", "src/scanner.c", ], resources: [ .copy("queries") ], publicHeadersPath: "bindings/swift", cSettings: [.headerSearchPath("src")] ), .testTarget( name: "TreeSitterLuaTests", dependencies: [ "SwiftTreeSitter", "TreeSitterLua", ], path: "bindings/swift/TreeSitterLuaTests" ) ], cLanguageStandard: .c11 ) 0707010000000E000081A400000000000000000000000166DF0FCB000004D3000000000000000000000000000000000000002000000000tree-sitter-lua-0.2.0/README.md# tree-sitter-lua [![CI][ci]](https://github.com/tree-sitter-grammars/tree-sitter-lua/actions/workflows/ci.yml) [![discord][discord]](https://discord.gg/w7nTvsVJhm) [![matrix][matrix]](https://matrix.to/#/#tree-sitter-chat:matrix.org) [![npm][npm]](https://www.npmjs.com/package/%40tree-sitter-grammars%2Ftree-sitter-lua) [![crates][crates]](https://crates.io/crates/tree-sitter-lua) Lua grammar for tree-sitter. - Lua 5.x - LuaJIT 2.x ## References - [Lua Documentation](https://www.lua.org/docs.html) ## Acknowledgement The [external scanner](/src/scanner.c) was initially based on these repositories: - [Azganoth/tree-sitter-lua](https://github.com/Azganoth/tree-sitter-lua) - [euclidianAce/tree-sitter-teal](https://github.com/euclidianAce/tree-sitter-teal) [ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter-grammars/tree-sitter-lua/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/%40tree-sitter-grammars%2Ftree-sitter-lua?logo=npm [crates]: https://img.shields.io/crates/v/tree-sitter-lua?logo=rust 0707010000000F000081A400000000000000000000000166DF0FCB00000256000000000000000000000000000000000000002200000000tree-sitter-lua-0.2.0/binding.gyp{ "targets": [ { "target_name": "tree_sitter_lua_binding", "dependencies": [ "<!(node -p \"require('node-addon-api').targets\"):node_addon_api_except", ], "include_dirs": [ "src", ], "sources": [ "bindings/node/binding.cc", "src/parser.c", "src/scanner.c", ], "conditions": [ ["OS!='win'", { "cflags_c": [ "-std=c11", ], }, { # OS == "win" "cflags_c": [ "/std:c11", "/utf-8", ], }], ], } ] } 07070100000010000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000001F00000000tree-sitter-lua-0.2.0/bindings07070100000011000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/bindings/c07070100000012000081A400000000000000000000000166DF0FCB000000EA000000000000000000000000000000000000003300000000tree-sitter-lua-0.2.0/bindings/c/tree-sitter-lua.h#ifndef TREE_SITTER_LUA_H_ #define TREE_SITTER_LUA_H_ typedef struct TSLanguage TSLanguage; #ifdef __cplusplus extern "C" { #endif const TSLanguage *tree_sitter_lua(void); #ifdef __cplusplus } #endif #endif // TREE_SITTER_LUA_H_ 07070100000013000081A400000000000000000000000166DF0FCB000000F9000000000000000000000000000000000000003700000000tree-sitter-lua-0.2.0/bindings/c/tree-sitter-lua.pc.inprefix=@PREFIX@ libdir=@LIBDIR@ includedir=@INCLUDEDIR@ Name: tree-sitter-lua Description: lua grammar for tree-sitter URL: @URL@ Version: @VERSION@ Requires: @REQUIRES@ Libs: -L${libdir} @ADDITIONAL_LIBS@ -ltree-sitter-lua Cflags: -I${includedir} 07070100000014000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002200000000tree-sitter-lua-0.2.0/bindings/go07070100000015000081A400000000000000000000000166DF0FCB00000119000000000000000000000000000000000000002D00000000tree-sitter-lua-0.2.0/bindings/go/binding.gopackage tree_sitter_lua // #cgo CFLAGS: -std=c11 -fPIC // #include "../../src/parser.c" // #include "../../src/scanner.c" import "C" import "unsafe" // Get the tree-sitter Language for this grammar. func Language() unsafe.Pointer { return unsafe.Pointer(C.tree_sitter_lua()) } 07070100000016000081A400000000000000000000000166DF0FCB00000166000000000000000000000000000000000000003200000000tree-sitter-lua-0.2.0/bindings/go/binding_test.gopackage tree_sitter_lua_test import ( "testing" tree_sitter_lua "github.com/tree-sitter-grammars/tree-sitter-lua/bindings/go" tree_sitter "github.com/tree-sitter/go-tree-sitter" ) func TestCanLoadGrammar(t *testing.T) { language := tree_sitter.NewLanguage(tree_sitter_lua.Language()) if language == nil { t.Errorf("Error loading Lua grammar") } } 07070100000017000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002400000000tree-sitter-lua-0.2.0/bindings/node07070100000018000081A400000000000000000000000166DF0FCB0000023D000000000000000000000000000000000000002F00000000tree-sitter-lua-0.2.0/bindings/node/binding.cc#include <napi.h> typedef struct TSLanguage TSLanguage; extern "C" TSLanguage *tree_sitter_lua(); // "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, "lua"); auto language = Napi::External<TSLanguage>::New(env, tree_sitter_lua()); language.TypeTag(&LANGUAGE_TYPE_TAG); exports["language"] = language; return exports; } NODE_API_MODULE(tree_sitter_lua_binding, Init) 07070100000019000081A400000000000000000000000166DF0FCB00000104000000000000000000000000000000000000003400000000tree-sitter-lua-0.2.0/bindings/node/binding_test.js/// <reference types="node" /> const assert = require("node:assert"); const { test } = require("node:test"); test("can load grammar", () => { const parser = new (require("tree-sitter"))(); assert.doesNotThrow(() => parser.setLanguage(require("."))); }); 0707010000001A000081A400000000000000000000000166DF0FCB000001C4000000000000000000000000000000000000002F00000000tree-sitter-lua-0.2.0/bindings/node/index.d.tstype 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; 0707010000001B000081A400000000000000000000000166DF0FCB000000C9000000000000000000000000000000000000002D00000000tree-sitter-lua-0.2.0/bindings/node/index.jsconst root = require("path").join(__dirname, "..", ".."); module.exports = require("node-gyp-build")(root); try { module.exports.nodeTypeInfo = require("../../src/node-types.json"); } catch (_) {} 0707010000001C000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002600000000tree-sitter-lua-0.2.0/bindings/python0707010000001D000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002C00000000tree-sitter-lua-0.2.0/bindings/python/tests0707010000001E000081A400000000000000000000000166DF0FCB0000011F000000000000000000000000000000000000003C00000000tree-sitter-lua-0.2.0/bindings/python/tests/test_binding.pyfrom unittest import TestCase import tree_sitter, tree_sitter_lua class TestLanguage(TestCase): def test_can_load_grammar(self): try: tree_sitter.Language(tree_sitter_lua.language()) except Exception: self.fail("Error loading Lua grammar") 0707010000001F000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000003600000000tree-sitter-lua-0.2.0/bindings/python/tree_sitter_lua07070100000020000081A400000000000000000000000166DF0FCB00000418000000000000000000000000000000000000004200000000tree-sitter-lua-0.2.0/bindings/python/tree_sitter_lua/__init__.py"""Lua 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") if name == "TAGS_QUERY": return _get_query("TAGS_QUERY", "tags.scm") raise AttributeError(f"module {__name__!r} has no attribute {name!r}") __all__ = [ "language", "HIGHLIGHTS_QUERY", "INJECTIONS_QUERY", "LOCALS_QUERY", "TAGS_QUERY", ] def __dir__(): return sorted(__all__ + [ "__all__", "__builtins__", "__cached__", "__doc__", "__file__", "__loader__", "__name__", "__package__", "__path__", "__spec__", ]) 07070100000021000081A400000000000000000000000166DF0FCB000000A3000000000000000000000000000000000000004300000000tree-sitter-lua-0.2.0/bindings/python/tree_sitter_lua/__init__.pyifrom typing import Final HIGHLIGHTS_QUERY: Final[str] INJECTIONS_QUERY: Final[str] LOCALS_QUERY: Final[str] TAGS_QUERY: Final[str] def language() -> object: ... 07070100000022000081A400000000000000000000000166DF0FCB000002A5000000000000000000000000000000000000004000000000tree-sitter-lua-0.2.0/bindings/python/tree_sitter_lua/binding.c#include <Python.h> typedef struct TSLanguage TSLanguage; TSLanguage *tree_sitter_lua(void); static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args)) { return PyCapsule_New(tree_sitter_lua(), "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); } 07070100000023000081A400000000000000000000000166DF0FCB00000000000000000000000000000000000000000000003F00000000tree-sitter-lua-0.2.0/bindings/python/tree_sitter_lua/py.typed07070100000024000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002400000000tree-sitter-lua-0.2.0/bindings/rust07070100000025000081A400000000000000000000000166DF0FCB00000235000000000000000000000000000000000000002D00000000tree-sitter-lua-0.2.0/bindings/rust/build.rsfn main() { let src_dir = std::path::Path::new("src"); let mut c_config = cc::Build::new(); c_config.std("c11").include(src_dir); #[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("tree-sitter-lua"); } 07070100000026000081A400000000000000000000000166DF0FCB0000083D000000000000000000000000000000000000002B00000000tree-sitter-lua-0.2.0/bindings/rust/lib.rs//! This crate provides Lua language support for the [tree-sitter][] parsing library. //! //! Typically, you will use the [language][language func] function to add this language to a //! tree-sitter [Parser][], and then use the parser to parse some code: //! //! ``` //! use tree_sitter::Parser; //! //! let code = r#" //! return 42 //! "#; //! let mut parser = Parser::new(); //! let language = tree_sitter_lua::LANGUAGE; //! parser //! .set_language(&language.into()) //! .expect("Error loading Lua 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::LanguageFn; extern "C" { fn tree_sitter_lua() -> *const (); } /// The tree-sitter [`LanguageFn`] for this grammar. pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_lua) }; /// 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"); /// The syntax highlighting query for this language. pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); /// The injection 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"); /// The symbol tagging query for this language. pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); #[cfg(test)] mod tests { #[test] fn test_can_load_grammar() { let mut parser = tree_sitter::Parser::new(); parser .set_language(&super::LANGUAGE.into()) .expect("Error loading Lua parser"); } } 07070100000027000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002500000000tree-sitter-lua-0.2.0/bindings/swift07070100000028000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000003300000000tree-sitter-lua-0.2.0/bindings/swift/TreeSitterLua07070100000029000081A400000000000000000000000166DF0FCB000000EA000000000000000000000000000000000000003900000000tree-sitter-lua-0.2.0/bindings/swift/TreeSitterLua/lua.h#ifndef TREE_SITTER_LUA_H_ #define TREE_SITTER_LUA_H_ typedef struct TSLanguage TSLanguage; #ifdef __cplusplus extern "C" { #endif const TSLanguage *tree_sitter_lua(void); #ifdef __cplusplus } #endif #endif // TREE_SITTER_LUA_H_ 0707010000002A000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000003800000000tree-sitter-lua-0.2.0/bindings/swift/TreeSitterLuaTests0707010000002B000081A400000000000000000000000166DF0FCB00000163000000000000000000000000000000000000005100000000tree-sitter-lua-0.2.0/bindings/swift/TreeSitterLuaTests/TreeSitterLuaTests.swiftimport XCTest import SwiftTreeSitter import TreeSitterLua final class TreeSitterLuaTests: XCTestCase { func testCanLoadGrammar() throws { let parser = Parser() let language = Language(language: tree_sitter_lua()) XCTAssertNoThrow(try parser.setLanguage(language), "Error loading Lua grammar") } } 0707010000002C000081A400000000000000000000000166DF0FCB000000AF000000000000000000000000000000000000001D00000000tree-sitter-lua-0.2.0/go.modmodule github.com/tree-sitter-grammars/tree-sitter-lua go 1.23 require github.com/tree-sitter/go-tree-sitter v0.23.1 require github.com/mattn/go-pointer v0.0.1 // indirect 0707010000002D000081A400000000000000000000000166DF0FCB00001050000000000000000000000000000000000000001D00000000tree-sitter-lua-0.2.0/go.sumgithub.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.23.1 h1:HCfaE19sKfG7q190xfM1loUZf6wEHa4TDqDEW46s9Lg= github.com/tree-sitter/go-tree-sitter v0.23.1/go.mod h1:EvIVhMvvPNvhu9x+ddSPxSnUEU5AnsSwi1LMqXIVE3A= 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= 0707010000002E000081A400000000000000000000000166DF0FCB00003CE3000000000000000000000000000000000000002100000000tree-sitter-lua-0.2.0/grammar.jsconst PREC = { OR: 1, // or AND: 2, // and COMPARE: 3, // < > <= >= ~= == BIT_OR: 4, // | BIT_NOT: 5, // ~ BIT_AND: 6, // & BIT_SHIFT: 7, // << >> CONCAT: 8, // .. PLUS: 9, // + - MULTI: 10, // * / // % UNARY: 11, // not # - ~ POWER: 12, // ^ }; const list_seq = (rule, separator, trailing_separator = false) => trailing_separator ? seq(rule, repeat(seq(separator, rule)), optional(separator)) : seq(rule, repeat(seq(separator, rule))); const optional_block = ($) => alias(optional($._block), $.block); // namelist ::= Name {',' Name} const name_list = ($) => list_seq(field('name', $.identifier), ','); module.exports = grammar({ name: 'lua', extras: ($) => [$.comment, /\s/], externals: ($) => [ $._block_comment_start, $._block_comment_content, $._block_comment_end, $._block_string_start, $._block_string_content, $._block_string_end, ], supertypes: ($) => [$.statement, $.expression, $.declaration, $.variable], word: ($) => $.identifier, rules: { // chunk ::= block chunk: ($) => seq( optional($.hash_bang_line), repeat($.statement), optional($.return_statement) ), hash_bang_line: (_) => /#.*/, // block ::= {stat} [retstat] _block: ($) => choice( seq(repeat1($.statement), optional($.return_statement)), seq(repeat($.statement), $.return_statement) ), /* stat ::= ';' | varlist '=' explist | functioncall | label | break | goto Name | do block end | while exp do block end | repeat block until exp | if exp then block {elseif exp then block} [else block] end | for Name '=' exp ',' exp [',' exp] do block end | for namelist in explist do block end | function funcname funcbody | local function Name funcbody | local namelist ['=' explist] */ statement: ($) => choice( $.empty_statement, $.assignment_statement, $.function_call, $.label_statement, $.break_statement, $.goto_statement, $.do_statement, $.while_statement, $.repeat_statement, $.if_statement, $.for_statement, $.declaration ), // retstat ::= return [explist] [';'] return_statement: ($) => seq( 'return', optional(alias($._expression_list, $.expression_list)), optional(';') ), // ';' empty_statement: (_) => ';', // varlist '=' explist assignment_statement: ($) => seq( alias($._variable_assignment_varlist, $.variable_list), '=', alias($._variable_assignment_explist, $.expression_list) ), // varlist ::= var {',' var} _variable_assignment_varlist: ($) => list_seq(field('name', $.variable), ','), // explist ::= exp {',' exp} _variable_assignment_explist: ($) => list_seq(field('value', $.expression), ','), // label ::= '::' Name '::' label_statement: ($) => seq('::', $.identifier, '::'), // break break_statement: (_) => 'break', // goto Name goto_statement: ($) => seq('goto', $.identifier), // do block end do_statement: ($) => seq('do', field('body', optional_block($)), 'end'), // while exp do block end while_statement: ($) => seq( 'while', field('condition', $.expression), 'do', field('body', optional_block($)), 'end' ), // repeat block until exp repeat_statement: ($) => seq( 'repeat', field('body', optional_block($)), 'until', field('condition', $.expression) ), // if exp then block {elseif exp then block} [else block] end if_statement: ($) => seq( 'if', field('condition', $.expression), 'then', field('consequence', optional_block($)), repeat(field('alternative', $.elseif_statement)), optional(field('alternative', $.else_statement)), 'end' ), // elseif exp then block elseif_statement: ($) => seq( 'elseif', field('condition', $.expression), 'then', field('consequence', optional_block($)) ), // else block else_statement: ($) => seq('else', field('body', optional_block($))), // for Name '=' exp ',' exp [',' exp] do block end // for namelist in explist do block end for_statement: ($) => seq( 'for', field('clause', choice($.for_generic_clause, $.for_numeric_clause)), 'do', field('body', optional_block($)), 'end' ), // namelist in explist for_generic_clause: ($) => seq( alias($._name_list, $.variable_list), 'in', alias($._expression_list, $.expression_list) ), // Name '=' exp ',' exp [',' exp] for_numeric_clause: ($) => seq( field('name', $.identifier), '=', field('start', $.expression), ',', field('end', $.expression), optional(seq(',', field('step', $.expression))) ), // function funcname funcbody // local function Name funcbody // local namelist ['=' explist] declaration: ($) => choice( $.function_declaration, field( 'local_declaration', alias($._local_function_declaration, $.function_declaration) ), field('local_declaration', $.variable_declaration) ), // function funcname funcbody function_declaration: ($) => seq('function', field('name', $._function_name), $._function_body), // local function Name funcbody _local_function_declaration: ($) => seq('local', 'function', field('name', $.identifier), $._function_body), // funcname ::= Name {'.' Name} [':' Name] _function_name: ($) => choice( $._function_name_prefix_expression, alias( $._function_name_method_index_expression, $.method_index_expression ) ), _function_name_prefix_expression: ($) => choice( $.identifier, alias($._function_name_dot_index_expression, $.dot_index_expression) ), _function_name_dot_index_expression: ($) => seq( field('table', $._function_name_prefix_expression), '.', field('field', $.identifier) ), _function_name_method_index_expression: ($) => seq( field('table', $._function_name_prefix_expression), ':', field('method', $.identifier) ), // local namelist ['=' explist] variable_declaration: ($) => seq( 'local', choice( alias($._att_name_list, $.variable_list), alias($._local_variable_assignment, $.assignment_statement) ) ), _local_variable_assignment: ($) => seq( alias($._att_name_list, $.variable_list), '=', alias($._variable_assignment_explist, $.expression_list) ), // namelist ::= Name {',' Name} _name_list: ($) => name_list($), // attnamelist ::= Name attrib {‘,’ Name attrib} _att_name_list: ($) => list_seq( seq( field('name', $.identifier), optional(field('attribute', alias($._attrib, $.attribute))) ), ',' ), // attrib ::= [‘<’ Name ‘>’] _attrib: ($) => seq('<', $.identifier, '>'), // explist ::= exp {',' exp} _expression_list: ($) => list_seq($.expression, ','), /* exp ::= nil | false | true | Numeral | LiteralString | '...' | functiondef | prefixexp | tableconstructor | exp binop exp | unop exp */ expression: ($) => choice( $.nil, $.false, $.true, $.number, $.string, $.vararg_expression, $.function_definition, $.variable, $.function_call, $.parenthesized_expression, $.table_constructor, $.binary_expression, $.unary_expression ), // nil nil: (_) => 'nil', // false false: (_) => 'false', // true true: (_) => 'true', // Numeral number: (_) => { function number_literal(digits, exponent_marker, exponent_digits) { return choice( seq(digits, /U?LL/i), seq( choice( seq(optional(digits), optional('.'), digits), seq(digits, optional('.'), optional(digits)) ), optional( seq( choice( exponent_marker.toLowerCase(), exponent_marker.toUpperCase() ), seq(optional(choice('-', '+')), exponent_digits) ) ), optional(choice('i', 'I')) ) ); } const decimal_digits = /[0-9]+/; const decimal_literal = number_literal( decimal_digits, 'e', decimal_digits ); const hex_digits = /[a-fA-F0-9]+/; const hex_literal = seq( choice('0x', '0X'), number_literal(hex_digits, 'p', decimal_digits) ); return token(choice(decimal_literal, hex_literal)); }, // LiteralString string: ($) => choice($._quote_string, $._block_string), _quote_string: ($) => choice( seq( field('start', alias('"', '"')), field( 'content', optional(alias($._doublequote_string_content, $.string_content)) ), field('end', alias('"', '"')) ), seq( field('start', alias("'", "'")), field( 'content', optional(alias($._singlequote_string_content, $.string_content)) ), field('end', alias("'", "'")) ) ), _doublequote_string_content: ($) => repeat1(choice(token.immediate(prec(1, /[^"\\]+/)), $.escape_sequence)), _singlequote_string_content: ($) => repeat1(choice(token.immediate(prec(1, /[^'\\]+/)), $.escape_sequence)), _block_string: ($) => seq( field('start', alias($._block_string_start, '[[')), field('content', alias($._block_string_content, $.string_content)), field('end', alias($._block_string_end, ']]')) ), escape_sequence: () => token.immediate( seq( '\\', choice( /[\nabfnrtv\\'"]/, /z\s*/, /[0-9]{1,3}/, /x[0-9a-fA-F]{2}/, /u\{[0-9a-fA-F]+\}/ ) ) ), // '...' vararg_expression: (_) => '...', // functiondef ::= function funcbody function_definition: ($) => seq('function', $._function_body), // funcbody ::= '(' [parlist] ')' block end _function_body: ($) => seq( field('parameters', $.parameters), field('body', optional_block($)), 'end' ), // '(' [parlist] ')' parameters: ($) => seq('(', optional($._parameter_list), ')'), // parlist ::= namelist [',' '...'] | '...' _parameter_list: ($) => choice( seq(name_list($), optional(seq(',', $.vararg_expression))), $.vararg_expression ), // prefixexp ::= var | functioncall | '(' exp ')' _prefix_expression: ($) => prec(1, choice($.variable, $.function_call, $.parenthesized_expression)), // var ::= Name | prefixexp [ exp ] | prefixexp . Name variable: ($) => choice($.identifier, $.bracket_index_expression, $.dot_index_expression), // prefixexp [ exp ] bracket_index_expression: ($) => seq( field('table', $._prefix_expression), '[', field('field', $.expression), ']' ), // prefixexp . Name dot_index_expression: ($) => seq( field('table', $._prefix_expression), '.', field('field', $.identifier) ), // functioncall ::= prefixexp args | prefixexp ':' Name args function_call: ($) => seq( field('name', choice($._prefix_expression, $.method_index_expression)), field('arguments', $.arguments) ), // prefixexp ':' Name method_index_expression: ($) => seq( field('table', $._prefix_expression), ':', field('method', $.identifier) ), // args ::= '(' [explist] ')' | tableconstructor | LiteralString arguments: ($) => choice( seq('(', optional(list_seq($.expression, ',')), ')'), $.table_constructor, $.string ), // '(' exp ')' parenthesized_expression: ($) => seq('(', $.expression, ')'), // tableconstructor ::= '{' [fieldlist] '}' table_constructor: ($) => seq('{', optional($._field_list), '}'), // fieldlist ::= field {fieldsep field} [fieldsep] _field_list: ($) => list_seq($.field, $._field_sep, true), // fieldsep ::= ',' | ';' _field_sep: (_) => choice(',', ';'), // field ::= '[' exp ']' '=' exp | Name '=' exp | exp field: ($) => choice( seq( '[', field('name', $.expression), ']', '=', field('value', $.expression) ), seq(field('name', $.identifier), '=', field('value', $.expression)), field('value', $.expression) ), // exp binop exp binary_expression: ($) => choice( ...[ ['or', PREC.OR], ['and', PREC.AND], ['<', PREC.COMPARE], ['<=', PREC.COMPARE], ['==', PREC.COMPARE], ['~=', PREC.COMPARE], ['>=', PREC.COMPARE], ['>', PREC.COMPARE], ['|', PREC.BIT_OR], ['~', PREC.BIT_NOT], ['&', PREC.BIT_AND], ['<<', PREC.BIT_SHIFT], ['>>', PREC.BIT_SHIFT], ['+', PREC.PLUS], ['-', PREC.PLUS], ['*', PREC.MULTI], ['/', PREC.MULTI], ['//', PREC.MULTI], ['%', PREC.MULTI], ].map(([operator, precedence]) => prec.left( precedence, seq( field('left', $.expression), operator, field('right', $.expression) ) ) ), ...[ ['..', PREC.CONCAT], ['^', PREC.POWER], ].map(([operator, precedence]) => prec.right( precedence, seq( field('left', $.expression), operator, field('right', $.expression) ) ) ) ), // unop exp unary_expression: ($) => prec.left( PREC.UNARY, seq(choice('not', '#', '-', '~'), field('operand', $.expression)) ), // Name identifier: (_) => { const identifier_start = /[^\p{Control}\s+\-*/%^#&~|<>=(){}\[\];:,.\\'"\d]/; const identifier_continue = /[^\p{Control}\s+\-*/%^#&~|<>=(){}\[\];:,.\\'"]*/; return token(seq(identifier_start, identifier_continue)); }, // comment comment: ($) => choice( seq( field('start', '--'), field('content', alias(/[^\r\n]*/, $.comment_content)) ), seq( field('start', alias($._block_comment_start, '[[')), field('content', alias($._block_comment_content, $.comment_content)), field('end', alias($._block_comment_end, ']]')) ) ), }, }); 0707010000002F000081A400000000000000000000000166DF0FCB0000328C000000000000000000000000000000000000002800000000tree-sitter-lua-0.2.0/package-lock.json{ "name": "@tree-sitter-grammars/tree-sitter-lua", "version": "0.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tree-sitter-grammars/tree-sitter-lua", "version": "0.2.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "node-addon-api": "^8.0.0", "node-gyp-build": "^4.8.1" }, "devDependencies": { "prebuildify": "^6.0.1", "tree-sitter-cli": "^0.23.0" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "peerDependenciesMeta": { "tree_sitter": { "optional": true } } }, "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" } ] }, "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, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "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" } ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "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 }, "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, "dependencies": { "once": "^1.4.0" } }, "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 }, "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" } ] }, "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 }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "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 }, "node_modules/node-abi": { "version": "3.56.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", "dev": true, "dependencies": { "semver": "^7.3.5" }, "engines": { "node": ">=10" } }, "node_modules/node-addon-api": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.1.0.tgz", "integrity": "sha512-yBY+qqWSv3dWKGODD6OGE6GnTX7Q2r+4+DfpqxHSHh8x0B4EKP9+wVGLS6U/AM1vxSNNmUEuIV5EGhYwPpfOwQ==", "engines": { "node": "^18 || ^20 || >= 21" } }, "node_modules/node-gyp-build": { "version": "4.8.2", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.2.tgz", "integrity": "sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==", "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, "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, "dependencies": { "wrappy": "1" } }, "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, "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, "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/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "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, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "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" } ] }, "node_modules/semver": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "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, "dependencies": { "safe-buffer": "~5.2.0" } }, "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, "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, "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.21.1", "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.1.tgz", "integrity": "sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==", "hasInstallScript": true, "peer": true, "dependencies": { "node-addon-api": "^8.0.0", "node-gyp-build": "^4.8.0" } }, "node_modules/tree-sitter-cli": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.23.0.tgz", "integrity": "sha512-/DdQaPCCOrOYGp9FxGdhFUnHIrjhfbYatQXgNIcmaAOpPunpnDj2vsO/H+svsfQLaFsQ1C+BjgPhpbV28zka1w==", "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { "tree-sitter": "cli.js" }, "engines": { "node": ">=12.0.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 }, "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 }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } } 07070100000030000081A400000000000000000000000166DF0FCB0000054F000000000000000000000000000000000000002300000000tree-sitter-lua-0.2.0/package.json{ "name": "@tree-sitter-grammars/tree-sitter-lua", "version": "0.2.0", "description": "Lua grammar for tree-sitter", "repository": "tree-sitter-grammars/tree-sitter-lua", "author": "Munif Tanjim (https://muniftanjim.dev)", "license": "MIT", "main": "bindings/node", "types": "bindings/node", "keywords": [ "incremental", "parsing", "tree-sitter", "lua" ], "files": [ "grammar.js", "binding.gyp", "prebuilds/**", "bindings/node/*", "queries/**", "src/**", "*.wasm" ], "dependencies": { "node-addon-api": "^8.0.0", "node-gyp-build": "^4.8.1" }, "devDependencies": { "tree-sitter-cli": "^0.23.0", "prebuildify": "^6.0.1" }, "peerDependencies": { "tree-sitter": "^0.21.1" }, "peerDependenciesMeta": { "tree_sitter": { "optional": true } }, "scripts": { "install": "node-gyp-build", "prestart": "tree-sitter build --wasm", "start": "tree-sitter playground", "test": "node --test bindings/node/*_test.js" }, "publishConfig": { "access": "public" }, "tree-sitter": [ { "scope": "source.lua", "injection-regex": "^lua$", "highlights": "queries/highlights.scm", "injections": "queries/injections.scm", "tags": "queries/tags.scm", "file-types": [ "lua" ] } ] } 07070100000031000081A400000000000000000000000166DF0FCB0000032D000000000000000000000000000000000000002500000000tree-sitter-lua-0.2.0/pyproject.toml[build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta" [project] name = "tree-sitter-lua" description = "Lua grammar for tree-sitter" version = "0.2.0" keywords = ["incremental", "parsing", "tree-sitter", "lua"] classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Topic :: Software Development :: Compilers", "Topic :: Text Processing :: Linguistic", "Typing :: Typed", ] authors = [{ name = "Munif Tanjim", email = "hello@muniftanjim.dev" }] requires-python = ">=3.9" license.text = "MIT" readme = "README.md" [project.urls] Homepage = "https://github.com/tree-sitter-grammars/tree-sitter-lua" [project.optional-dependencies] core = ["tree-sitter~=0.23"] [tool.cibuildwheel] build = "cp39-*" build-frontend = "build" 07070100000032000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000001E00000000tree-sitter-lua-0.2.0/queries07070100000033000081A400000000000000000000000166DF0FCB00000B28000000000000000000000000000000000000002D00000000tree-sitter-lua-0.2.0/queries/highlights.scm;; Keywords "return" @keyword.return [ "goto" "in" "local" ] @keyword (label_statement) @label (break_statement) @keyword (do_statement [ "do" "end" ] @keyword) (while_statement [ "while" "do" "end" ] @repeat) (repeat_statement [ "repeat" "until" ] @repeat) (if_statement [ "if" "elseif" "else" "then" "end" ] @conditional) (elseif_statement [ "elseif" "then" "end" ] @conditional) (else_statement [ "else" "end" ] @conditional) (for_statement [ "for" "do" "end" ] @repeat) (function_declaration [ "function" "end" ] @keyword.function) (function_definition [ "function" "end" ] @keyword.function) ;; Operators [ "and" "not" "or" ] @keyword.operator [ "+" "-" "*" "/" "%" "^" "#" "==" "~=" "<=" ">=" "<" ">" "=" "&" "~" "|" "<<" ">>" "//" ".." ] @operator ;; Punctuations [ ";" ":" "," "." ] @punctuation.delimiter ;; Brackets [ "(" ")" "[" "]" "{" "}" ] @punctuation.bracket ;; Variables (identifier) @variable ((identifier) @variable.builtin (#eq? @variable.builtin "self")) (variable_list (attribute "<" @punctuation.bracket (identifier) @attribute ">" @punctuation.bracket)) ;; Constants ((identifier) @constant (#match? @constant "^[A-Z][A-Z_0-9]*$")) (vararg_expression) @constant (nil) @constant.builtin [ (false) (true) ] @boolean ;; Tables (field name: (identifier) @field) (dot_index_expression field: (identifier) @field) (table_constructor [ "{" "}" ] @constructor) ;; Functions (parameters (identifier) @parameter) (function_declaration name: [ (identifier) @function (dot_index_expression field: (identifier) @function) ]) (function_declaration name: (method_index_expression method: (identifier) @method)) (assignment_statement (variable_list . name: [ (identifier) @function (dot_index_expression field: (identifier) @function) ]) (expression_list . value: (function_definition))) (table_constructor (field name: (identifier) @function value: (function_definition))) (function_call name: [ (identifier) @function.call (dot_index_expression field: (identifier) @function.call) (method_index_expression method: (identifier) @method.call) ]) (function_call (identifier) @function.builtin (#any-of? @function.builtin ;; built-in functions in Lua 5.1 "assert" "collectgarbage" "dofile" "error" "getfenv" "getmetatable" "ipairs" "load" "loadfile" "loadstring" "module" "next" "pairs" "pcall" "print" "rawequal" "rawget" "rawset" "require" "select" "setfenv" "setmetatable" "tonumber" "tostring" "type" "unpack" "xpcall")) ;; Others (comment) @comment (hash_bang_line) @preproc (number) @number (string) @string (escape_sequence) @string.escape 07070100000034000081A400000000000000000000000166DF0FCB000000F1000000000000000000000000000000000000002D00000000tree-sitter-lua-0.2.0/queries/injections.scm((function_call name: [ (identifier) @_cdef_identifier (_ _ (identifier) @_cdef_identifier) ] arguments: (arguments (string content: _ @injection.content (#set! injection.language "c")))) (#eq? @_cdef_identifier "cdef")) 07070100000035000081A400000000000000000000000166DF0FCB00000236000000000000000000000000000000000000002900000000tree-sitter-lua-0.2.0/queries/locals.scm; Scopes [ (chunk) (do_statement) (while_statement) (repeat_statement) (if_statement) (for_statement) (function_declaration) (function_definition) ] @local.scope ; Definitions (assignment_statement (variable_list (identifier) @local.definition)) (function_declaration name: (identifier) @local.definition) (for_generic_clause (variable_list (identifier) @local.definition)) (for_numeric_clause name: (identifier) @local.definition) (parameters (identifier) @local.definition) ; References [ (identifier) ] @local.reference 07070100000036000081A400000000000000000000000166DF0FCB0000030C000000000000000000000000000000000000002700000000tree-sitter-lua-0.2.0/queries/tags.scm(function_declaration name: [ (identifier) @name (dot_index_expression field: (identifier) @name) ]) @definition.function (function_declaration name: (method_index_expression method: (identifier) @name)) @definition.method (assignment_statement (variable_list . name: [ (identifier) @name (dot_index_expression field: (identifier) @name) ]) (expression_list . value: (function_definition))) @definition.function (table_constructor (field name: (identifier) @name value: (function_definition))) @definition.function (function_call name: [ (identifier) @name (dot_index_expression field: (identifier) @name) (method_index_expression method: (identifier) @name) ]) @reference.call 07070100000037000081A400000000000000000000000166DF0FCB000006A3000000000000000000000000000000000000001F00000000tree-sitter-lua-0.2.0/setup.pyfrom 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_lua", "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_lua": ["*.pyi", "py.typed"], "tree_sitter_lua.queries": ["*.scm"], }, ext_package="tree_sitter_lua", ext_modules=[ Extension( name="_binding", sources=[ "bindings/python/tree_sitter_lua/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 ) 07070100000038000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000001A00000000tree-sitter-lua-0.2.0/src07070100000039000081A400000000000000000000000166DF0FCB0001229F000000000000000000000000000000000000002700000000tree-sitter-lua-0.2.0/src/grammar.json{ "name": "lua", "word": "identifier", "rules": { "chunk": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "hash_bang_line" }, { "type": "BLANK" } ] }, { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "return_statement" }, { "type": "BLANK" } ] } ] }, "hash_bang_line": { "type": "PATTERN", "value": "#.*" }, "_block": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "REPEAT1", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "return_statement" }, { "type": "BLANK" } ] } ] }, { "type": "SEQ", "members": [ { "type": "REPEAT", "content": { "type": "SYMBOL", "name": "statement" } }, { "type": "SYMBOL", "name": "return_statement" } ] } ] }, "statement": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "empty_statement" }, { "type": "SYMBOL", "name": "assignment_statement" }, { "type": "SYMBOL", "name": "function_call" }, { "type": "SYMBOL", "name": "label_statement" }, { "type": "SYMBOL", "name": "break_statement" }, { "type": "SYMBOL", "name": "goto_statement" }, { "type": "SYMBOL", "name": "do_statement" }, { "type": "SYMBOL", "name": "while_statement" }, { "type": "SYMBOL", "name": "repeat_statement" }, { "type": "SYMBOL", "name": "if_statement" }, { "type": "SYMBOL", "name": "for_statement" }, { "type": "SYMBOL", "name": "declaration" } ] }, "return_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "return" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_expression_list" }, "named": true, "value": "expression_list" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": ";" }, { "type": "BLANK" } ] } ] }, "empty_statement": { "type": "STRING", "value": ";" }, "assignment_statement": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_variable_assignment_varlist" }, "named": true, "value": "variable_list" }, { "type": "STRING", "value": "=" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_variable_assignment_explist" }, "named": true, "value": "expression_list" } ] }, "_variable_assignment_varlist": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "variable" } } ] } } ] }, "_variable_assignment_explist": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] } } ] }, "label_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "::" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": "::" } ] }, "break_statement": { "type": "STRING", "value": "break" }, "goto_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "goto" }, { "type": "SYMBOL", "name": "identifier" } ] }, "do_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "do" }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "STRING", "value": "end" } ] }, "while_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "while" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "do" }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "STRING", "value": "end" } ] }, "repeat_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "repeat" }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "STRING", "value": "until" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "if_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "if" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "then" }, { "type": "FIELD", "name": "consequence", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "REPEAT", "content": { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "elseif_statement" } } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "alternative", "content": { "type": "SYMBOL", "name": "else_statement" } }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "end" } ] }, "elseif_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "elseif" }, { "type": "FIELD", "name": "condition", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "then" }, { "type": "FIELD", "name": "consequence", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } } ] }, "else_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "else" }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } } ] }, "for_statement": { "type": "SEQ", "members": [ { "type": "STRING", "value": "for" }, { "type": "FIELD", "name": "clause", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "for_generic_clause" }, { "type": "SYMBOL", "name": "for_numeric_clause" } ] } }, { "type": "STRING", "value": "do" }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "STRING", "value": "end" } ] }, "for_generic_clause": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_name_list" }, "named": true, "value": "variable_list" }, { "type": "STRING", "value": "in" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_expression_list" }, "named": true, "value": "expression_list" } ] }, "for_numeric_clause": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "start", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "end", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "step", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "BLANK" } ] } ] }, "declaration": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "function_declaration" }, { "type": "FIELD", "name": "local_declaration", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_local_function_declaration" }, "named": true, "value": "function_declaration" } }, { "type": "FIELD", "name": "local_declaration", "content": { "type": "SYMBOL", "name": "variable_declaration" } } ] }, "function_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "function" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "_function_name" } }, { "type": "SYMBOL", "name": "_function_body" } ] }, "_local_function_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "local" }, { "type": "STRING", "value": "function" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "SYMBOL", "name": "_function_body" } ] }, "_function_name": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_function_name_prefix_expression" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_function_name_method_index_expression" }, "named": true, "value": "method_index_expression" } ] }, "_function_name_prefix_expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_function_name_dot_index_expression" }, "named": true, "value": "dot_index_expression" } ] }, "_function_name_dot_index_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "table", "content": { "type": "SYMBOL", "name": "_function_name_prefix_expression" } }, { "type": "STRING", "value": "." }, { "type": "FIELD", "name": "field", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "_function_name_method_index_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "table", "content": { "type": "SYMBOL", "name": "_function_name_prefix_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "method", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "variable_declaration": { "type": "SEQ", "members": [ { "type": "STRING", "value": "local" }, { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_att_name_list" }, "named": true, "value": "variable_list" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_local_variable_assignment" }, "named": true, "value": "assignment_statement" } ] } ] }, "_local_variable_assignment": { "type": "SEQ", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_att_name_list" }, "named": true, "value": "variable_list" }, { "type": "STRING", "value": "=" }, { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_variable_assignment_explist" }, "named": true, "value": "expression_list" } ] }, "_name_list": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, "_att_name_list": { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attribute", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_attrib" }, "named": true, "value": "attribute" } }, { "type": "BLANK" } ] } ] }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "CHOICE", "members": [ { "type": "FIELD", "name": "attribute", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_attrib" }, "named": true, "value": "attribute" } }, { "type": "BLANK" } ] } ] } ] } } ] }, "_attrib": { "type": "SEQ", "members": [ { "type": "STRING", "value": "<" }, { "type": "SYMBOL", "name": "identifier" }, { "type": "STRING", "value": ">" } ] }, "_expression_list": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, "expression": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "nil" }, { "type": "SYMBOL", "name": "false" }, { "type": "SYMBOL", "name": "true" }, { "type": "SYMBOL", "name": "number" }, { "type": "SYMBOL", "name": "string" }, { "type": "SYMBOL", "name": "vararg_expression" }, { "type": "SYMBOL", "name": "function_definition" }, { "type": "SYMBOL", "name": "variable" }, { "type": "SYMBOL", "name": "function_call" }, { "type": "SYMBOL", "name": "parenthesized_expression" }, { "type": "SYMBOL", "name": "table_constructor" }, { "type": "SYMBOL", "name": "binary_expression" }, { "type": "SYMBOL", "name": "unary_expression" } ] }, "nil": { "type": "STRING", "value": "nil" }, "false": { "type": "STRING", "value": "false" }, "true": { "type": "STRING", "value": "true" }, "number": { "type": "TOKEN", "content": { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "PATTERN", "value": "U?LL", "flags": "i" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "." }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "[0-9]+" } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "." }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[0-9]+" }, { "type": "BLANK" } ] } ] } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "e" }, { "type": "STRING", "value": "E" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "+" } ] }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "[0-9]+" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "i" }, { "type": "STRING", "value": "I" } ] }, { "type": "BLANK" } ] } ] } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "0x" }, { "type": "STRING", "value": "0X" } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[a-fA-F0-9]+" }, { "type": "PATTERN", "value": "U?LL", "flags": "i" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[a-fA-F0-9]+" }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "." }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "[a-fA-F0-9]+" } ] }, { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[a-fA-F0-9]+" }, { "type": "CHOICE", "members": [ { "type": "STRING", "value": "." }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[a-fA-F0-9]+" }, { "type": "BLANK" } ] } ] } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "p" }, { "type": "STRING", "value": "P" } ] }, { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "+" } ] }, { "type": "BLANK" } ] }, { "type": "PATTERN", "value": "[0-9]+" } ] } ] }, { "type": "BLANK" } ] }, { "type": "CHOICE", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "i" }, { "type": "STRING", "value": "I" } ] }, { "type": "BLANK" } ] } ] } ] } ] } ] } }, "string": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_quote_string" }, { "type": "SYMBOL", "name": "_block_string" } ] }, "_quote_string": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "ALIAS", "content": { "type": "STRING", "value": "\"" }, "named": false, "value": "\"" } }, { "type": "FIELD", "name": "content", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_doublequote_string_content" }, "named": true, "value": "string_content" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "end", "content": { "type": "ALIAS", "content": { "type": "STRING", "value": "\"" }, "named": false, "value": "\"" } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "ALIAS", "content": { "type": "STRING", "value": "'" }, "named": false, "value": "'" } }, { "type": "FIELD", "name": "content", "content": { "type": "CHOICE", "members": [ { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_singlequote_string_content" }, "named": true, "value": "string_content" }, { "type": "BLANK" } ] } }, { "type": "FIELD", "name": "end", "content": { "type": "ALIAS", "content": { "type": "STRING", "value": "'" }, "named": false, "value": "'" } } ] } ] }, "_doublequote_string_content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^\"\\\\]+" } } }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, "_singlequote_string_content": { "type": "REPEAT1", "content": { "type": "CHOICE", "members": [ { "type": "IMMEDIATE_TOKEN", "content": { "type": "PREC", "value": 1, "content": { "type": "PATTERN", "value": "[^'\\\\]+" } } }, { "type": "SYMBOL", "name": "escape_sequence" } ] } }, "_block_string": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_string_start" }, "named": false, "value": "[[" } }, { "type": "FIELD", "name": "content", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_string_content" }, "named": true, "value": "string_content" } }, { "type": "FIELD", "name": "end", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_string_end" }, "named": false, "value": "]]" } } ] }, "escape_sequence": { "type": "IMMEDIATE_TOKEN", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "\\" }, { "type": "CHOICE", "members": [ { "type": "PATTERN", "value": "[\\nabfnrtv\\\\'\"]" }, { "type": "PATTERN", "value": "z\\s*" }, { "type": "PATTERN", "value": "[0-9]{1,3}" }, { "type": "PATTERN", "value": "x[0-9a-fA-F]{2}" }, { "type": "PATTERN", "value": "u\\{[0-9a-fA-F]+\\}" } ] } ] } }, "vararg_expression": { "type": "STRING", "value": "..." }, "function_definition": { "type": "SEQ", "members": [ { "type": "STRING", "value": "function" }, { "type": "SYMBOL", "name": "_function_body" } ] }, "_function_body": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "parameters", "content": { "type": "SYMBOL", "name": "parameters" } }, { "type": "FIELD", "name": "body", "content": { "type": "ALIAS", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_block" }, { "type": "BLANK" } ] }, "named": true, "value": "block" } }, { "type": "STRING", "value": "end" } ] }, "parameters": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_parameter_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, "_parameter_list": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } } ] } } ] }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "vararg_expression" } ] }, { "type": "BLANK" } ] } ] }, { "type": "SYMBOL", "name": "vararg_expression" } ] }, "_prefix_expression": { "type": "PREC", "value": 1, "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "variable" }, { "type": "SYMBOL", "name": "function_call" }, { "type": "SYMBOL", "name": "parenthesized_expression" } ] } }, "variable": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "identifier" }, { "type": "SYMBOL", "name": "bracket_index_expression" }, { "type": "SYMBOL", "name": "dot_index_expression" } ] }, "bracket_index_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "table", "content": { "type": "SYMBOL", "name": "_prefix_expression" } }, { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "field", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "]" } ] }, "dot_index_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "table", "content": { "type": "SYMBOL", "name": "_prefix_expression" } }, { "type": "STRING", "value": "." }, { "type": "FIELD", "name": "field", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "function_call": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_prefix_expression" }, { "type": "SYMBOL", "name": "method_index_expression" } ] } }, { "type": "FIELD", "name": "arguments", "content": { "type": "SYMBOL", "name": "arguments" } } ] }, "method_index_expression": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "table", "content": { "type": "SYMBOL", "name": "_prefix_expression" } }, { "type": "STRING", "value": ":" }, { "type": "FIELD", "name": "method", "content": { "type": "SYMBOL", "name": "identifier" } } ] }, "arguments": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "expression" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "STRING", "value": "," }, { "type": "SYMBOL", "name": "expression" } ] } } ] }, { "type": "BLANK" } ] }, { "type": "STRING", "value": ")" } ] }, { "type": "SYMBOL", "name": "table_constructor" }, { "type": "SYMBOL", "name": "string" } ] }, "parenthesized_expression": { "type": "SEQ", "members": [ { "type": "STRING", "value": "(" }, { "type": "SYMBOL", "name": "expression" }, { "type": "STRING", "value": ")" } ] }, "table_constructor": { "type": "SEQ", "members": [ { "type": "STRING", "value": "{" }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_field_list" }, { "type": "BLANK" } ] }, { "type": "STRING", "value": "}" } ] }, "_field_list": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "field" }, { "type": "REPEAT", "content": { "type": "SEQ", "members": [ { "type": "SYMBOL", "name": "_field_sep" }, { "type": "SYMBOL", "name": "field" } ] } }, { "type": "CHOICE", "members": [ { "type": "SYMBOL", "name": "_field_sep" }, { "type": "BLANK" } ] } ] }, "_field_sep": { "type": "CHOICE", "members": [ { "type": "STRING", "value": "," }, { "type": "STRING", "value": ";" } ] }, "field": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "STRING", "value": "[" }, { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "]" }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "name", "content": { "type": "SYMBOL", "name": "identifier" } }, { "type": "STRING", "value": "=" }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, { "type": "FIELD", "name": "value", "content": { "type": "SYMBOL", "name": "expression" } } ] }, "binary_expression": { "type": "CHOICE", "members": [ { "type": "PREC_LEFT", "value": 1, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "or" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 2, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "and" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "<" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "<=" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "==" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "~=" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ">=" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 3, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ">" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 4, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "|" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 5, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "~" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 6, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "&" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "<<" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 7, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ">>" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "+" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 9, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "-" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "*" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "/" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "//" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_LEFT", "value": 10, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "%" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_RIGHT", "value": 8, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": ".." }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, { "type": "PREC_RIGHT", "value": 12, "content": { "type": "SEQ", "members": [ { "type": "FIELD", "name": "left", "content": { "type": "SYMBOL", "name": "expression" } }, { "type": "STRING", "value": "^" }, { "type": "FIELD", "name": "right", "content": { "type": "SYMBOL", "name": "expression" } } ] } } ] }, "unary_expression": { "type": "PREC_LEFT", "value": 11, "content": { "type": "SEQ", "members": [ { "type": "CHOICE", "members": [ { "type": "STRING", "value": "not" }, { "type": "STRING", "value": "#" }, { "type": "STRING", "value": "-" }, { "type": "STRING", "value": "~" } ] }, { "type": "FIELD", "name": "operand", "content": { "type": "SYMBOL", "name": "expression" } } ] } }, "identifier": { "type": "TOKEN", "content": { "type": "SEQ", "members": [ { "type": "PATTERN", "value": "[^\\p{Control}\\s+\\-*/%^#&~|<>=(){}\\[\\];:,.\\\\'\"\\d]" }, { "type": "PATTERN", "value": "[^\\p{Control}\\s+\\-*/%^#&~|<>=(){}\\[\\];:,.\\\\'\"]*" } ] } }, "comment": { "type": "CHOICE", "members": [ { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "STRING", "value": "--" } }, { "type": "FIELD", "name": "content", "content": { "type": "ALIAS", "content": { "type": "PATTERN", "value": "[^\\r\\n]*" }, "named": true, "value": "comment_content" } } ] }, { "type": "SEQ", "members": [ { "type": "FIELD", "name": "start", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_comment_start" }, "named": false, "value": "[[" } }, { "type": "FIELD", "name": "content", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_comment_content" }, "named": true, "value": "comment_content" } }, { "type": "FIELD", "name": "end", "content": { "type": "ALIAS", "content": { "type": "SYMBOL", "name": "_block_comment_end" }, "named": false, "value": "]]" } } ] } ] } }, "extras": [ { "type": "SYMBOL", "name": "comment" }, { "type": "PATTERN", "value": "\\s" } ], "conflicts": [], "precedences": [], "externals": [ { "type": "SYMBOL", "name": "_block_comment_start" }, { "type": "SYMBOL", "name": "_block_comment_content" }, { "type": "SYMBOL", "name": "_block_comment_end" }, { "type": "SYMBOL", "name": "_block_string_start" }, { "type": "SYMBOL", "name": "_block_string_content" }, { "type": "SYMBOL", "name": "_block_string_end" } ], "inline": [], "supertypes": [ "statement", "expression", "declaration", "variable" ] } 0707010000003A000081A400000000000000000000000166DF0FCB00005558000000000000000000000000000000000000002A00000000tree-sitter-lua-0.2.0/src/node-types.json[ { "type": "declaration", "named": true, "subtypes": [ { "type": "function_declaration", "named": true }, { "type": "variable_declaration", "named": true } ] }, { "type": "expression", "named": true, "subtypes": [ { "type": "binary_expression", "named": true }, { "type": "false", "named": true }, { "type": "function_call", "named": true }, { "type": "function_definition", "named": true }, { "type": "nil", "named": true }, { "type": "number", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "string", "named": true }, { "type": "table_constructor", "named": true }, { "type": "true", "named": true }, { "type": "unary_expression", "named": true }, { "type": "vararg_expression", "named": true }, { "type": "variable", "named": true } ] }, { "type": "statement", "named": true, "subtypes": [ { "type": "assignment_statement", "named": true }, { "type": "break_statement", "named": true }, { "type": "declaration", "named": true }, { "type": "do_statement", "named": true }, { "type": "empty_statement", "named": true }, { "type": "for_statement", "named": true }, { "type": "function_call", "named": true }, { "type": "goto_statement", "named": true }, { "type": "if_statement", "named": true }, { "type": "label_statement", "named": true }, { "type": "repeat_statement", "named": true }, { "type": "while_statement", "named": true } ] }, { "type": "variable", "named": true, "subtypes": [ { "type": "bracket_index_expression", "named": true }, { "type": "dot_index_expression", "named": true }, { "type": "identifier", "named": true } ] }, { "type": "arguments", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "assignment_statement", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression_list", "named": true }, { "type": "variable_list", "named": true } ] } }, { "type": "attribute", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "block", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "return_statement", "named": true }, { "type": "statement", "named": true } ] } }, { "type": "bracket_index_expression", "named": true, "fields": { "field": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "table": { "multiple": false, "required": true, "types": [ { "type": "function_call", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "variable", "named": true } ] } } }, { "type": "chunk", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "hash_bang_line", "named": true }, { "type": "return_statement", "named": true }, { "type": "statement", "named": true } ] } }, { "type": "comment", "named": true, "fields": { "content": { "multiple": false, "required": true, "types": [ { "type": "comment_content", "named": true } ] }, "end": { "multiple": false, "required": false, "types": [ { "type": "]]", "named": false } ] }, "start": { "multiple": false, "required": true, "types": [ { "type": "--", "named": false }, { "type": "[[", "named": false } ] } } }, { "type": "do_statement", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] } } }, { "type": "dot_index_expression", "named": true, "fields": { "field": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "table": { "multiple": false, "required": true, "types": [ { "type": "function_call", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "variable", "named": true } ] } } }, { "type": "else_statement", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] } } }, { "type": "elseif_statement", "named": true, "fields": { "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] } } }, { "type": "empty_statement", "named": true, "fields": {} }, { "type": "expression_list", "named": true, "fields": { "value": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "expression", "named": true } ] } }, { "type": "field", "named": true, "fields": { "name": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true }, { "type": "identifier", "named": true } ] }, "value": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "for_generic_clause", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "expression_list", "named": true }, { "type": "variable_list", "named": true } ] } }, { "type": "for_numeric_clause", "named": true, "fields": { "end": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "start": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "step": { "multiple": false, "required": false, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "for_statement", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "clause": { "multiple": false, "required": true, "types": [ { "type": "for_generic_clause", "named": true }, { "type": "for_numeric_clause", "named": true } ] } } }, { "type": "function_call", "named": true, "fields": { "arguments": { "multiple": false, "required": true, "types": [ { "type": "arguments", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "function_call", "named": true }, { "type": "method_index_expression", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "variable", "named": true } ] } } }, { "type": "function_declaration", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "name": { "multiple": false, "required": true, "types": [ { "type": "dot_index_expression", "named": true }, { "type": "identifier", "named": true }, { "type": "method_index_expression", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameters", "named": true } ] } } }, { "type": "function_definition", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "parameters": { "multiple": false, "required": true, "types": [ { "type": "parameters", "named": true } ] } } }, { "type": "goto_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "if_statement", "named": true, "fields": { "alternative": { "multiple": true, "required": false, "types": [ { "type": "else_statement", "named": true }, { "type": "elseif_statement", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] }, "consequence": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] } } }, { "type": "label_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] } }, { "type": "method_index_expression", "named": true, "fields": { "method": { "multiple": false, "required": true, "types": [ { "type": "identifier", "named": true } ] }, "table": { "multiple": false, "required": true, "types": [ { "type": "function_call", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "variable", "named": true } ] } } }, { "type": "parameters", "named": true, "fields": { "name": { "multiple": true, "required": false, "types": [ { "type": "identifier", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "vararg_expression", "named": true } ] } }, { "type": "parenthesized_expression", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } }, { "type": "repeat_statement", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "return_statement", "named": true, "fields": {}, "children": { "multiple": false, "required": false, "types": [ { "type": "expression_list", "named": true } ] } }, { "type": "string", "named": true, "fields": { "content": { "multiple": false, "required": false, "types": [ { "type": "string_content", "named": true } ] }, "end": { "multiple": false, "required": true, "types": [ { "type": "\"", "named": false }, { "type": "'", "named": false }, { "type": "]]", "named": false } ] }, "start": { "multiple": false, "required": true, "types": [ { "type": "\"", "named": false }, { "type": "'", "named": false }, { "type": "[[", "named": false } ] } } }, { "type": "string_content", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "escape_sequence", "named": true } ] } }, { "type": "table_constructor", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "field", "named": true } ] } }, { "type": "unary_expression", "named": true, "fields": { "operand": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "variable_declaration", "named": true, "fields": {}, "children": { "multiple": false, "required": true, "types": [ { "type": "assignment_statement", "named": true }, { "type": "variable_list", "named": true } ] } }, { "type": "variable_list", "named": true, "fields": { "attribute": { "multiple": true, "required": false, "types": [ { "type": "attribute", "named": true } ] }, "name": { "multiple": true, "required": true, "types": [ { "type": "variable", "named": true } ] } } }, { "type": "while_statement", "named": true, "fields": { "body": { "multiple": false, "required": false, "types": [ { "type": "block", "named": true } ] }, "condition": { "multiple": false, "required": true, "types": [ { "type": "expression", "named": true } ] } } }, { "type": "\"", "named": false }, { "type": "#", "named": false }, { "type": "%", "named": false }, { "type": "&", "named": false }, { "type": "'", "named": false }, { "type": "(", "named": false }, { "type": ")", "named": false }, { "type": "*", "named": false }, { "type": "+", "named": false }, { "type": ",", "named": false }, { "type": "-", "named": false }, { "type": "--", "named": false }, { "type": ".", "named": false }, { "type": "..", "named": false }, { "type": "/", "named": false }, { "type": "//", "named": false }, { "type": ":", "named": false }, { "type": "::", "named": false }, { "type": ";", "named": false }, { "type": "<", "named": false }, { "type": "<<", "named": false }, { "type": "<=", "named": false }, { "type": "=", "named": false }, { "type": "==", "named": false }, { "type": ">", "named": false }, { "type": ">=", "named": false }, { "type": ">>", "named": false }, { "type": "[", "named": false }, { "type": "[[", "named": false }, { "type": "]", "named": false }, { "type": "]]", "named": false }, { "type": "^", "named": false }, { "type": "and", "named": false }, { "type": "break_statement", "named": true }, { "type": "comment_content", "named": true }, { "type": "do", "named": false }, { "type": "else", "named": false }, { "type": "elseif", "named": false }, { "type": "end", "named": false }, { "type": "escape_sequence", "named": true }, { "type": "false", "named": true }, { "type": "for", "named": false }, { "type": "function", "named": false }, { "type": "goto", "named": false }, { "type": "hash_bang_line", "named": true }, { "type": "identifier", "named": true }, { "type": "if", "named": false }, { "type": "in", "named": false }, { "type": "local", "named": false }, { "type": "nil", "named": true }, { "type": "not", "named": false }, { "type": "number", "named": true }, { "type": "or", "named": false }, { "type": "repeat", "named": false }, { "type": "return", "named": false }, { "type": "then", "named": false }, { "type": "true", "named": true }, { "type": "until", "named": false }, { "type": "vararg_expression", "named": true }, { "type": "while", "named": false }, { "type": "{", "named": false }, { "type": "|", "named": false }, { "type": "}", "named": false }, { "type": "~", "named": false }, { "type": "~=", "named": false } ]0707010000003B000081A400000000000000000000000166DF0FCB0004F3E4000000000000000000000000000000000000002300000000tree-sitter-lua-0.2.0/src/parser.c#include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 14 #define STATE_COUNT 262 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 137 #define ALIAS_COUNT 0 #define TOKEN_COUNT 72 #define EXTERNAL_TOKEN_COUNT 6 #define FIELD_COUNT 21 #define MAX_ALIAS_SEQUENCE_LENGTH 7 #define PRODUCTION_ID_COUNT 59 enum ts_symbol_identifiers { sym_identifier = 1, sym_hash_bang_line = 2, anon_sym_return = 3, anon_sym_SEMI = 4, anon_sym_EQ = 5, anon_sym_COMMA = 6, anon_sym_COLON_COLON = 7, sym_break_statement = 8, anon_sym_goto = 9, anon_sym_do = 10, anon_sym_end = 11, anon_sym_while = 12, anon_sym_repeat = 13, anon_sym_until = 14, anon_sym_if = 15, anon_sym_then = 16, anon_sym_elseif = 17, anon_sym_else = 18, anon_sym_for = 19, anon_sym_in = 20, anon_sym_function = 21, anon_sym_local = 22, anon_sym_DOT = 23, anon_sym_COLON = 24, anon_sym_LT = 25, anon_sym_GT = 26, sym_nil = 27, sym_false = 28, sym_true = 29, sym_number = 30, anon_sym_DQUOTE = 31, anon_sym_SQUOTE = 32, aux_sym__doublequote_string_content_token1 = 33, aux_sym__singlequote_string_content_token1 = 34, sym_escape_sequence = 35, sym_vararg_expression = 36, anon_sym_LPAREN = 37, anon_sym_RPAREN = 38, anon_sym_LBRACK = 39, anon_sym_RBRACK = 40, anon_sym_LBRACE = 41, anon_sym_RBRACE = 42, anon_sym_or = 43, anon_sym_and = 44, anon_sym_LT_EQ = 45, anon_sym_EQ_EQ = 46, anon_sym_TILDE_EQ = 47, anon_sym_GT_EQ = 48, anon_sym_PIPE = 49, anon_sym_TILDE = 50, anon_sym_AMP = 51, anon_sym_LT_LT = 52, anon_sym_GT_GT = 53, anon_sym_PLUS = 54, anon_sym_DASH = 55, anon_sym_STAR = 56, anon_sym_SLASH = 57, anon_sym_SLASH_SLASH = 58, anon_sym_PERCENT = 59, anon_sym_DOT_DOT = 60, anon_sym_CARET = 61, anon_sym_not = 62, anon_sym_POUND = 63, anon_sym_DASH_DASH = 64, aux_sym_comment_token1 = 65, sym__block_comment_start = 66, sym__block_comment_content = 67, sym__block_comment_end = 68, sym__block_string_start = 69, sym__block_string_content = 70, sym__block_string_end = 71, sym_chunk = 72, sym__block = 73, sym_statement = 74, sym_return_statement = 75, sym_empty_statement = 76, sym_assignment_statement = 77, sym__variable_assignment_varlist = 78, sym__variable_assignment_explist = 79, sym_label_statement = 80, sym_goto_statement = 81, sym_do_statement = 82, sym_while_statement = 83, sym_repeat_statement = 84, sym_if_statement = 85, sym_elseif_statement = 86, sym_else_statement = 87, sym_for_statement = 88, sym_for_generic_clause = 89, sym_for_numeric_clause = 90, sym_declaration = 91, sym_function_declaration = 92, sym__local_function_declaration = 93, sym__function_name = 94, sym__function_name_prefix_expression = 95, sym__function_name_dot_index_expression = 96, sym__function_name_method_index_expression = 97, sym_variable_declaration = 98, sym__local_variable_assignment = 99, sym__name_list = 100, sym__att_name_list = 101, sym__attrib = 102, sym__expression_list = 103, sym_expression = 104, sym_string = 105, sym__quote_string = 106, aux_sym__doublequote_string_content = 107, aux_sym__singlequote_string_content = 108, sym__block_string = 109, sym_function_definition = 110, sym__function_body = 111, sym_parameters = 112, sym__parameter_list = 113, sym__prefix_expression = 114, sym_variable = 115, sym_bracket_index_expression = 116, sym_dot_index_expression = 117, sym_function_call = 118, sym_method_index_expression = 119, sym_arguments = 120, sym_parenthesized_expression = 121, sym_table_constructor = 122, sym__field_list = 123, sym__field_sep = 124, sym_field = 125, sym_binary_expression = 126, sym_unary_expression = 127, sym_comment = 128, aux_sym_chunk_repeat1 = 129, aux_sym__variable_assignment_varlist_repeat1 = 130, aux_sym__variable_assignment_explist_repeat1 = 131, aux_sym_if_statement_repeat1 = 132, aux_sym__name_list_repeat1 = 133, aux_sym__att_name_list_repeat1 = 134, aux_sym__expression_list_repeat1 = 135, aux_sym__field_list_repeat1 = 136, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", [sym_hash_bang_line] = "hash_bang_line", [anon_sym_return] = "return", [anon_sym_SEMI] = ";", [anon_sym_EQ] = "=", [anon_sym_COMMA] = ",", [anon_sym_COLON_COLON] = "::", [sym_break_statement] = "break_statement", [anon_sym_goto] = "goto", [anon_sym_do] = "do", [anon_sym_end] = "end", [anon_sym_while] = "while", [anon_sym_repeat] = "repeat", [anon_sym_until] = "until", [anon_sym_if] = "if", [anon_sym_then] = "then", [anon_sym_elseif] = "elseif", [anon_sym_else] = "else", [anon_sym_for] = "for", [anon_sym_in] = "in", [anon_sym_function] = "function", [anon_sym_local] = "local", [anon_sym_DOT] = ".", [anon_sym_COLON] = ":", [anon_sym_LT] = "<", [anon_sym_GT] = ">", [sym_nil] = "nil", [sym_false] = "false", [sym_true] = "true", [sym_number] = "number", [anon_sym_DQUOTE] = "\"", [anon_sym_SQUOTE] = "'", [aux_sym__doublequote_string_content_token1] = "_doublequote_string_content_token1", [aux_sym__singlequote_string_content_token1] = "_singlequote_string_content_token1", [sym_escape_sequence] = "escape_sequence", [sym_vararg_expression] = "vararg_expression", [anon_sym_LPAREN] = "(", [anon_sym_RPAREN] = ")", [anon_sym_LBRACK] = "[", [anon_sym_RBRACK] = "]", [anon_sym_LBRACE] = "{", [anon_sym_RBRACE] = "}", [anon_sym_or] = "or", [anon_sym_and] = "and", [anon_sym_LT_EQ] = "<=", [anon_sym_EQ_EQ] = "==", [anon_sym_TILDE_EQ] = "~=", [anon_sym_GT_EQ] = ">=", [anon_sym_PIPE] = "|", [anon_sym_TILDE] = "~", [anon_sym_AMP] = "&", [anon_sym_LT_LT] = "<<", [anon_sym_GT_GT] = ">>", [anon_sym_PLUS] = "+", [anon_sym_DASH] = "-", [anon_sym_STAR] = "*", [anon_sym_SLASH] = "/", [anon_sym_SLASH_SLASH] = "//", [anon_sym_PERCENT] = "%", [anon_sym_DOT_DOT] = "..", [anon_sym_CARET] = "^", [anon_sym_not] = "not", [anon_sym_POUND] = "#", [anon_sym_DASH_DASH] = "--", [aux_sym_comment_token1] = "comment_content", [sym__block_comment_start] = "[[", [sym__block_comment_content] = "comment_content", [sym__block_comment_end] = "]]", [sym__block_string_start] = "[[", [sym__block_string_content] = "string_content", [sym__block_string_end] = "]]", [sym_chunk] = "chunk", [sym__block] = "block", [sym_statement] = "statement", [sym_return_statement] = "return_statement", [sym_empty_statement] = "empty_statement", [sym_assignment_statement] = "assignment_statement", [sym__variable_assignment_varlist] = "variable_list", [sym__variable_assignment_explist] = "expression_list", [sym_label_statement] = "label_statement", [sym_goto_statement] = "goto_statement", [sym_do_statement] = "do_statement", [sym_while_statement] = "while_statement", [sym_repeat_statement] = "repeat_statement", [sym_if_statement] = "if_statement", [sym_elseif_statement] = "elseif_statement", [sym_else_statement] = "else_statement", [sym_for_statement] = "for_statement", [sym_for_generic_clause] = "for_generic_clause", [sym_for_numeric_clause] = "for_numeric_clause", [sym_declaration] = "declaration", [sym_function_declaration] = "function_declaration", [sym__local_function_declaration] = "function_declaration", [sym__function_name] = "_function_name", [sym__function_name_prefix_expression] = "_function_name_prefix_expression", [sym__function_name_dot_index_expression] = "dot_index_expression", [sym__function_name_method_index_expression] = "method_index_expression", [sym_variable_declaration] = "variable_declaration", [sym__local_variable_assignment] = "assignment_statement", [sym__name_list] = "variable_list", [sym__att_name_list] = "variable_list", [sym__attrib] = "attribute", [sym__expression_list] = "expression_list", [sym_expression] = "expression", [sym_string] = "string", [sym__quote_string] = "_quote_string", [aux_sym__doublequote_string_content] = "_doublequote_string_content", [aux_sym__singlequote_string_content] = "_singlequote_string_content", [sym__block_string] = "_block_string", [sym_function_definition] = "function_definition", [sym__function_body] = "_function_body", [sym_parameters] = "parameters", [sym__parameter_list] = "_parameter_list", [sym__prefix_expression] = "_prefix_expression", [sym_variable] = "variable", [sym_bracket_index_expression] = "bracket_index_expression", [sym_dot_index_expression] = "dot_index_expression", [sym_function_call] = "function_call", [sym_method_index_expression] = "method_index_expression", [sym_arguments] = "arguments", [sym_parenthesized_expression] = "parenthesized_expression", [sym_table_constructor] = "table_constructor", [sym__field_list] = "_field_list", [sym__field_sep] = "_field_sep", [sym_field] = "field", [sym_binary_expression] = "binary_expression", [sym_unary_expression] = "unary_expression", [sym_comment] = "comment", [aux_sym_chunk_repeat1] = "chunk_repeat1", [aux_sym__variable_assignment_varlist_repeat1] = "_variable_assignment_varlist_repeat1", [aux_sym__variable_assignment_explist_repeat1] = "_variable_assignment_explist_repeat1", [aux_sym_if_statement_repeat1] = "if_statement_repeat1", [aux_sym__name_list_repeat1] = "_name_list_repeat1", [aux_sym__att_name_list_repeat1] = "_att_name_list_repeat1", [aux_sym__expression_list_repeat1] = "_expression_list_repeat1", [aux_sym__field_list_repeat1] = "_field_list_repeat1", }; static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, [sym_hash_bang_line] = sym_hash_bang_line, [anon_sym_return] = anon_sym_return, [anon_sym_SEMI] = anon_sym_SEMI, [anon_sym_EQ] = anon_sym_EQ, [anon_sym_COMMA] = anon_sym_COMMA, [anon_sym_COLON_COLON] = anon_sym_COLON_COLON, [sym_break_statement] = sym_break_statement, [anon_sym_goto] = anon_sym_goto, [anon_sym_do] = anon_sym_do, [anon_sym_end] = anon_sym_end, [anon_sym_while] = anon_sym_while, [anon_sym_repeat] = anon_sym_repeat, [anon_sym_until] = anon_sym_until, [anon_sym_if] = anon_sym_if, [anon_sym_then] = anon_sym_then, [anon_sym_elseif] = anon_sym_elseif, [anon_sym_else] = anon_sym_else, [anon_sym_for] = anon_sym_for, [anon_sym_in] = anon_sym_in, [anon_sym_function] = anon_sym_function, [anon_sym_local] = anon_sym_local, [anon_sym_DOT] = anon_sym_DOT, [anon_sym_COLON] = anon_sym_COLON, [anon_sym_LT] = anon_sym_LT, [anon_sym_GT] = anon_sym_GT, [sym_nil] = sym_nil, [sym_false] = sym_false, [sym_true] = sym_true, [sym_number] = sym_number, [anon_sym_DQUOTE] = anon_sym_DQUOTE, [anon_sym_SQUOTE] = anon_sym_SQUOTE, [aux_sym__doublequote_string_content_token1] = aux_sym__doublequote_string_content_token1, [aux_sym__singlequote_string_content_token1] = aux_sym__singlequote_string_content_token1, [sym_escape_sequence] = sym_escape_sequence, [sym_vararg_expression] = sym_vararg_expression, [anon_sym_LPAREN] = anon_sym_LPAREN, [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_RBRACK] = anon_sym_RBRACK, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_RBRACE] = anon_sym_RBRACE, [anon_sym_or] = anon_sym_or, [anon_sym_and] = anon_sym_and, [anon_sym_LT_EQ] = anon_sym_LT_EQ, [anon_sym_EQ_EQ] = anon_sym_EQ_EQ, [anon_sym_TILDE_EQ] = anon_sym_TILDE_EQ, [anon_sym_GT_EQ] = anon_sym_GT_EQ, [anon_sym_PIPE] = anon_sym_PIPE, [anon_sym_TILDE] = anon_sym_TILDE, [anon_sym_AMP] = anon_sym_AMP, [anon_sym_LT_LT] = anon_sym_LT_LT, [anon_sym_GT_GT] = anon_sym_GT_GT, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_STAR] = anon_sym_STAR, [anon_sym_SLASH] = anon_sym_SLASH, [anon_sym_SLASH_SLASH] = anon_sym_SLASH_SLASH, [anon_sym_PERCENT] = anon_sym_PERCENT, [anon_sym_DOT_DOT] = anon_sym_DOT_DOT, [anon_sym_CARET] = anon_sym_CARET, [anon_sym_not] = anon_sym_not, [anon_sym_POUND] = anon_sym_POUND, [anon_sym_DASH_DASH] = anon_sym_DASH_DASH, [aux_sym_comment_token1] = sym__block_comment_content, [sym__block_comment_start] = sym__block_comment_start, [sym__block_comment_content] = sym__block_comment_content, [sym__block_comment_end] = sym__block_comment_end, [sym__block_string_start] = sym__block_comment_start, [sym__block_string_content] = sym__block_string_content, [sym__block_string_end] = sym__block_comment_end, [sym_chunk] = sym_chunk, [sym__block] = sym__block, [sym_statement] = sym_statement, [sym_return_statement] = sym_return_statement, [sym_empty_statement] = sym_empty_statement, [sym_assignment_statement] = sym_assignment_statement, [sym__variable_assignment_varlist] = sym__variable_assignment_varlist, [sym__variable_assignment_explist] = sym__variable_assignment_explist, [sym_label_statement] = sym_label_statement, [sym_goto_statement] = sym_goto_statement, [sym_do_statement] = sym_do_statement, [sym_while_statement] = sym_while_statement, [sym_repeat_statement] = sym_repeat_statement, [sym_if_statement] = sym_if_statement, [sym_elseif_statement] = sym_elseif_statement, [sym_else_statement] = sym_else_statement, [sym_for_statement] = sym_for_statement, [sym_for_generic_clause] = sym_for_generic_clause, [sym_for_numeric_clause] = sym_for_numeric_clause, [sym_declaration] = sym_declaration, [sym_function_declaration] = sym_function_declaration, [sym__local_function_declaration] = sym_function_declaration, [sym__function_name] = sym__function_name, [sym__function_name_prefix_expression] = sym__function_name_prefix_expression, [sym__function_name_dot_index_expression] = sym_dot_index_expression, [sym__function_name_method_index_expression] = sym_method_index_expression, [sym_variable_declaration] = sym_variable_declaration, [sym__local_variable_assignment] = sym_assignment_statement, [sym__name_list] = sym__variable_assignment_varlist, [sym__att_name_list] = sym__variable_assignment_varlist, [sym__attrib] = sym__attrib, [sym__expression_list] = sym__variable_assignment_explist, [sym_expression] = sym_expression, [sym_string] = sym_string, [sym__quote_string] = sym__quote_string, [aux_sym__doublequote_string_content] = aux_sym__doublequote_string_content, [aux_sym__singlequote_string_content] = aux_sym__singlequote_string_content, [sym__block_string] = sym__block_string, [sym_function_definition] = sym_function_definition, [sym__function_body] = sym__function_body, [sym_parameters] = sym_parameters, [sym__parameter_list] = sym__parameter_list, [sym__prefix_expression] = sym__prefix_expression, [sym_variable] = sym_variable, [sym_bracket_index_expression] = sym_bracket_index_expression, [sym_dot_index_expression] = sym_dot_index_expression, [sym_function_call] = sym_function_call, [sym_method_index_expression] = sym_method_index_expression, [sym_arguments] = sym_arguments, [sym_parenthesized_expression] = sym_parenthesized_expression, [sym_table_constructor] = sym_table_constructor, [sym__field_list] = sym__field_list, [sym__field_sep] = sym__field_sep, [sym_field] = sym_field, [sym_binary_expression] = sym_binary_expression, [sym_unary_expression] = sym_unary_expression, [sym_comment] = sym_comment, [aux_sym_chunk_repeat1] = aux_sym_chunk_repeat1, [aux_sym__variable_assignment_varlist_repeat1] = aux_sym__variable_assignment_varlist_repeat1, [aux_sym__variable_assignment_explist_repeat1] = aux_sym__variable_assignment_explist_repeat1, [aux_sym_if_statement_repeat1] = aux_sym_if_statement_repeat1, [aux_sym__name_list_repeat1] = aux_sym__name_list_repeat1, [aux_sym__att_name_list_repeat1] = aux_sym__att_name_list_repeat1, [aux_sym__expression_list_repeat1] = aux_sym__expression_list_repeat1, [aux_sym__field_list_repeat1] = aux_sym__field_list_repeat1, }; static const TSSymbolMetadata ts_symbol_metadata[] = { [ts_builtin_sym_end] = { .visible = false, .named = true, }, [sym_identifier] = { .visible = true, .named = true, }, [sym_hash_bang_line] = { .visible = true, .named = true, }, [anon_sym_return] = { .visible = true, .named = false, }, [anon_sym_SEMI] = { .visible = true, .named = false, }, [anon_sym_EQ] = { .visible = true, .named = false, }, [anon_sym_COMMA] = { .visible = true, .named = false, }, [anon_sym_COLON_COLON] = { .visible = true, .named = false, }, [sym_break_statement] = { .visible = true, .named = true, }, [anon_sym_goto] = { .visible = true, .named = false, }, [anon_sym_do] = { .visible = true, .named = false, }, [anon_sym_end] = { .visible = true, .named = false, }, [anon_sym_while] = { .visible = true, .named = false, }, [anon_sym_repeat] = { .visible = true, .named = false, }, [anon_sym_until] = { .visible = true, .named = false, }, [anon_sym_if] = { .visible = true, .named = false, }, [anon_sym_then] = { .visible = true, .named = false, }, [anon_sym_elseif] = { .visible = true, .named = false, }, [anon_sym_else] = { .visible = true, .named = false, }, [anon_sym_for] = { .visible = true, .named = false, }, [anon_sym_in] = { .visible = true, .named = false, }, [anon_sym_function] = { .visible = true, .named = false, }, [anon_sym_local] = { .visible = true, .named = false, }, [anon_sym_DOT] = { .visible = true, .named = false, }, [anon_sym_COLON] = { .visible = true, .named = false, }, [anon_sym_LT] = { .visible = true, .named = false, }, [anon_sym_GT] = { .visible = true, .named = false, }, [sym_nil] = { .visible = true, .named = true, }, [sym_false] = { .visible = true, .named = true, }, [sym_true] = { .visible = true, .named = true, }, [sym_number] = { .visible = true, .named = true, }, [anon_sym_DQUOTE] = { .visible = true, .named = false, }, [anon_sym_SQUOTE] = { .visible = true, .named = false, }, [aux_sym__doublequote_string_content_token1] = { .visible = false, .named = false, }, [aux_sym__singlequote_string_content_token1] = { .visible = false, .named = false, }, [sym_escape_sequence] = { .visible = true, .named = true, }, [sym_vararg_expression] = { .visible = true, .named = true, }, [anon_sym_LPAREN] = { .visible = true, .named = false, }, [anon_sym_RPAREN] = { .visible = true, .named = false, }, [anon_sym_LBRACK] = { .visible = true, .named = false, }, [anon_sym_RBRACK] = { .visible = true, .named = false, }, [anon_sym_LBRACE] = { .visible = true, .named = false, }, [anon_sym_RBRACE] = { .visible = true, .named = false, }, [anon_sym_or] = { .visible = true, .named = false, }, [anon_sym_and] = { .visible = true, .named = false, }, [anon_sym_LT_EQ] = { .visible = true, .named = false, }, [anon_sym_EQ_EQ] = { .visible = true, .named = false, }, [anon_sym_TILDE_EQ] = { .visible = true, .named = false, }, [anon_sym_GT_EQ] = { .visible = true, .named = false, }, [anon_sym_PIPE] = { .visible = true, .named = false, }, [anon_sym_TILDE] = { .visible = true, .named = false, }, [anon_sym_AMP] = { .visible = true, .named = false, }, [anon_sym_LT_LT] = { .visible = true, .named = false, }, [anon_sym_GT_GT] = { .visible = true, .named = false, }, [anon_sym_PLUS] = { .visible = true, .named = false, }, [anon_sym_DASH] = { .visible = true, .named = false, }, [anon_sym_STAR] = { .visible = true, .named = false, }, [anon_sym_SLASH] = { .visible = true, .named = false, }, [anon_sym_SLASH_SLASH] = { .visible = true, .named = false, }, [anon_sym_PERCENT] = { .visible = true, .named = false, }, [anon_sym_DOT_DOT] = { .visible = true, .named = false, }, [anon_sym_CARET] = { .visible = true, .named = false, }, [anon_sym_not] = { .visible = true, .named = false, }, [anon_sym_POUND] = { .visible = true, .named = false, }, [anon_sym_DASH_DASH] = { .visible = true, .named = false, }, [aux_sym_comment_token1] = { .visible = true, .named = true, }, [sym__block_comment_start] = { .visible = true, .named = false, }, [sym__block_comment_content] = { .visible = true, .named = true, }, [sym__block_comment_end] = { .visible = true, .named = false, }, [sym__block_string_start] = { .visible = true, .named = false, }, [sym__block_string_content] = { .visible = true, .named = true, }, [sym__block_string_end] = { .visible = true, .named = false, }, [sym_chunk] = { .visible = true, .named = true, }, [sym__block] = { .visible = true, .named = true, }, [sym_statement] = { .visible = false, .named = true, .supertype = true, }, [sym_return_statement] = { .visible = true, .named = true, }, [sym_empty_statement] = { .visible = true, .named = true, }, [sym_assignment_statement] = { .visible = true, .named = true, }, [sym__variable_assignment_varlist] = { .visible = true, .named = true, }, [sym__variable_assignment_explist] = { .visible = true, .named = true, }, [sym_label_statement] = { .visible = true, .named = true, }, [sym_goto_statement] = { .visible = true, .named = true, }, [sym_do_statement] = { .visible = true, .named = true, }, [sym_while_statement] = { .visible = true, .named = true, }, [sym_repeat_statement] = { .visible = true, .named = true, }, [sym_if_statement] = { .visible = true, .named = true, }, [sym_elseif_statement] = { .visible = true, .named = true, }, [sym_else_statement] = { .visible = true, .named = true, }, [sym_for_statement] = { .visible = true, .named = true, }, [sym_for_generic_clause] = { .visible = true, .named = true, }, [sym_for_numeric_clause] = { .visible = true, .named = true, }, [sym_declaration] = { .visible = false, .named = true, .supertype = true, }, [sym_function_declaration] = { .visible = true, .named = true, }, [sym__local_function_declaration] = { .visible = true, .named = true, }, [sym__function_name] = { .visible = false, .named = true, }, [sym__function_name_prefix_expression] = { .visible = false, .named = true, }, [sym__function_name_dot_index_expression] = { .visible = true, .named = true, }, [sym__function_name_method_index_expression] = { .visible = true, .named = true, }, [sym_variable_declaration] = { .visible = true, .named = true, }, [sym__local_variable_assignment] = { .visible = true, .named = true, }, [sym__name_list] = { .visible = true, .named = true, }, [sym__att_name_list] = { .visible = true, .named = true, }, [sym__attrib] = { .visible = true, .named = true, }, [sym__expression_list] = { .visible = true, .named = true, }, [sym_expression] = { .visible = false, .named = true, .supertype = true, }, [sym_string] = { .visible = true, .named = true, }, [sym__quote_string] = { .visible = false, .named = true, }, [aux_sym__doublequote_string_content] = { .visible = false, .named = false, }, [aux_sym__singlequote_string_content] = { .visible = false, .named = false, }, [sym__block_string] = { .visible = false, .named = true, }, [sym_function_definition] = { .visible = true, .named = true, }, [sym__function_body] = { .visible = false, .named = true, }, [sym_parameters] = { .visible = true, .named = true, }, [sym__parameter_list] = { .visible = false, .named = true, }, [sym__prefix_expression] = { .visible = false, .named = true, }, [sym_variable] = { .visible = false, .named = true, .supertype = true, }, [sym_bracket_index_expression] = { .visible = true, .named = true, }, [sym_dot_index_expression] = { .visible = true, .named = true, }, [sym_function_call] = { .visible = true, .named = true, }, [sym_method_index_expression] = { .visible = true, .named = true, }, [sym_arguments] = { .visible = true, .named = true, }, [sym_parenthesized_expression] = { .visible = true, .named = true, }, [sym_table_constructor] = { .visible = true, .named = true, }, [sym__field_list] = { .visible = false, .named = true, }, [sym__field_sep] = { .visible = false, .named = true, }, [sym_field] = { .visible = true, .named = true, }, [sym_binary_expression] = { .visible = true, .named = true, }, [sym_unary_expression] = { .visible = true, .named = true, }, [sym_comment] = { .visible = true, .named = true, }, [aux_sym_chunk_repeat1] = { .visible = false, .named = false, }, [aux_sym__variable_assignment_varlist_repeat1] = { .visible = false, .named = false, }, [aux_sym__variable_assignment_explist_repeat1] = { .visible = false, .named = false, }, [aux_sym_if_statement_repeat1] = { .visible = false, .named = false, }, [aux_sym__name_list_repeat1] = { .visible = false, .named = false, }, [aux_sym__att_name_list_repeat1] = { .visible = false, .named = false, }, [aux_sym__expression_list_repeat1] = { .visible = false, .named = false, }, [aux_sym__field_list_repeat1] = { .visible = false, .named = false, }, }; enum ts_field_identifiers { field_alternative = 1, field_arguments = 2, field_attribute = 3, field_body = 4, field_clause = 5, field_condition = 6, field_consequence = 7, field_content = 8, field_end = 9, field_field = 10, field_left = 11, field_local_declaration = 12, field_method = 13, field_name = 14, field_operand = 15, field_parameters = 16, field_right = 17, field_start = 18, field_step = 19, field_table = 20, field_value = 21, }; static const char * const ts_field_names[] = { [0] = NULL, [field_alternative] = "alternative", [field_arguments] = "arguments", [field_attribute] = "attribute", [field_body] = "body", [field_clause] = "clause", [field_condition] = "condition", [field_consequence] = "consequence", [field_content] = "content", [field_end] = "end", [field_field] = "field", [field_left] = "left", [field_local_declaration] = "local_declaration", [field_method] = "method", [field_name] = "name", [field_operand] = "operand", [field_parameters] = "parameters", [field_right] = "right", [field_start] = "start", [field_step] = "step", [field_table] = "table", [field_value] = "value", }; static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 4}, [3] = {.index = 5, .length = 1}, [4] = {.index = 6, .length = 1}, [5] = {.index = 7, .length = 2}, [6] = {.index = 9, .length = 3}, [7] = {.index = 12, .length = 2}, [8] = {.index = 14, .length = 2}, [9] = {.index = 16, .length = 2}, [10] = {.index = 18, .length = 2}, [11] = {.index = 20, .length = 2}, [12] = {.index = 22, .length = 3}, [13] = {.index = 25, .length = 2}, [14] = {.index = 27, .length = 2}, [15] = {.index = 29, .length = 1}, [16] = {.index = 30, .length = 1}, [17] = {.index = 31, .length = 1}, [18] = {.index = 32, .length = 1}, [19] = {.index = 33, .length = 3}, [20] = {.index = 36, .length = 2}, [21] = {.index = 38, .length = 3}, [22] = {.index = 41, .length = 2}, [23] = {.index = 43, .length = 2}, [24] = {.index = 45, .length = 2}, [25] = {.index = 47, .length = 1}, [26] = {.index = 48, .length = 2}, [27] = {.index = 50, .length = 1}, [28] = {.index = 22, .length = 3}, [29] = {.index = 51, .length = 2}, [30] = {.index = 53, .length = 1}, [31] = {.index = 54, .length = 2}, [32] = {.index = 56, .length = 1}, [33] = {.index = 57, .length = 1}, [34] = {.index = 58, .length = 1}, [35] = {.index = 59, .length = 3}, [36] = {.index = 62, .length = 4}, [37] = {.index = 66, .length = 4}, [38] = {.index = 70, .length = 3}, [39] = {.index = 73, .length = 2}, [40] = {.index = 75, .length = 1}, [41] = {.index = 76, .length = 2}, [42] = {.index = 78, .length = 2}, [43] = {.index = 80, .length = 2}, [44] = {.index = 82, .length = 2}, [45] = {.index = 84, .length = 2}, [46] = {.index = 86, .length = 2}, [47] = {.index = 88, .length = 2}, [48] = {.index = 90, .length = 2}, [49] = {.index = 92, .length = 2}, [50] = {.index = 94, .length = 1}, [51] = {.index = 95, .length = 2}, [52] = {.index = 97, .length = 3}, [53] = {.index = 100, .length = 3}, [54] = {.index = 103, .length = 3}, [55] = {.index = 106, .length = 3}, [56] = {.index = 109, .length = 2}, [57] = {.index = 111, .length = 4}, [58] = {.index = 115, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { [0] = {field_local_declaration, 0, .inherited = true}, [1] = {field_body, 0, .inherited = true}, {field_local_declaration, 0}, {field_name, 0, .inherited = true}, {field_parameters, 0, .inherited = true}, [5] = {field_local_declaration, 0}, [6] = {field_name, 0}, [7] = {field_content, 1}, {field_start, 0}, [9] = {field_content, 0, .inherited = true}, {field_end, 0, .inherited = true}, {field_start, 0, .inherited = true}, [12] = {field_field, 0, .inherited = true}, {field_table, 0, .inherited = true}, [14] = {field_method, 0, .inherited = true}, {field_table, 0, .inherited = true}, [16] = {field_attribute, 1, .inherited = true}, {field_name, 1, .inherited = true}, [18] = {field_arguments, 1}, {field_name, 0}, [20] = {field_name, 0}, {field_name, 1, .inherited = true}, [22] = {field_content, 1}, {field_end, 2}, {field_start, 0}, [25] = {field_body, 1, .inherited = true}, {field_parameters, 1, .inherited = true}, [27] = {field_end, 1}, {field_start, 0}, [29] = {field_value, 0}, [30] = {field_operand, 1}, [31] = {field_body, 1}, [32] = {field_condition, 2}, [33] = {field_body, 2, .inherited = true}, {field_name, 1}, {field_parameters, 2, .inherited = true}, [36] = {field_attribute, 1}, {field_name, 0}, [38] = {field_attribute, 1, .inherited = true}, {field_name, 0}, {field_name, 1, .inherited = true}, [41] = {field_name, 0, .inherited = true}, {field_value, 2, .inherited = true}, [43] = {field_field, 2}, {field_table, 0}, [45] = {field_method, 2}, {field_table, 0}, [47] = {field_name, 1}, [48] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, [50] = {field_parameters, 0}, [51] = {field_left, 0}, {field_right, 2}, [53] = {field_condition, 1}, [54] = {field_body, 1}, {field_condition, 3}, [56] = {field_alternative, 0}, [57] = {field_clause, 1}, [58] = {field_name, 0, .inherited = true}, [59] = {field_body, 3, .inherited = true}, {field_name, 2}, {field_parameters, 3, .inherited = true}, [62] = {field_attribute, 1}, {field_attribute, 2, .inherited = true}, {field_name, 0}, {field_name, 2, .inherited = true}, [66] = {field_attribute, 0, .inherited = true}, {field_attribute, 1, .inherited = true}, {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, [70] = {field_attribute, 0, .inherited = true}, {field_name, 0, .inherited = true}, {field_value, 2, .inherited = true}, [73] = {field_value, 0}, {field_value, 1, .inherited = true}, [75] = {field_name, 1, .inherited = true}, [76] = {field_body, 1}, {field_parameters, 0}, [78] = {field_name, 0}, {field_value, 2}, [80] = {field_body, 3}, {field_condition, 1}, [82] = {field_condition, 1}, {field_consequence, 3}, [84] = {field_alternative, 3}, {field_condition, 1}, [86] = {field_alternative, 3, .inherited = true}, {field_condition, 1}, [88] = {field_alternative, 0, .inherited = true}, {field_alternative, 1, .inherited = true}, [90] = {field_body, 3}, {field_clause, 1}, [92] = {field_attribute, 2}, {field_name, 1}, [94] = {field_value, 1}, [95] = {field_value, 0, .inherited = true}, {field_value, 1, .inherited = true}, [97] = {field_alternative, 4}, {field_condition, 1}, {field_consequence, 3}, [100] = {field_alternative, 4, .inherited = true}, {field_condition, 1}, {field_consequence, 3}, [103] = {field_alternative, 3, .inherited = true}, {field_alternative, 4}, {field_condition, 1}, [106] = {field_end, 4}, {field_name, 0}, {field_start, 2}, [109] = {field_name, 1}, {field_value, 4}, [111] = {field_alternative, 4, .inherited = true}, {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, [115] = {field_end, 4}, {field_name, 0}, {field_start, 2}, {field_step, 6}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { [0] = {0}, [28] = { [1] = sym__block_string_content, }, }; static const uint16_t ts_non_terminal_alias_map[] = { aux_sym__doublequote_string_content, 2, aux_sym__doublequote_string_content, sym__block_string_content, aux_sym__singlequote_string_content, 2, aux_sym__singlequote_string_content, sym__block_string_content, 0, }; static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [6] = 6, [7] = 7, [8] = 8, [9] = 9, [10] = 10, [11] = 11, [12] = 12, [13] = 13, [14] = 14, [15] = 15, [16] = 16, [17] = 17, [18] = 18, [19] = 17, [20] = 20, [21] = 21, [22] = 22, [23] = 23, [24] = 24, [25] = 25, [26] = 26, [27] = 27, [28] = 28, [29] = 18, [30] = 5, [31] = 31, [32] = 32, [33] = 16, [34] = 34, [35] = 35, [36] = 15, [37] = 37, [38] = 38, [39] = 14, [40] = 40, [41] = 12, [42] = 42, [43] = 43, [44] = 44, [45] = 45, [46] = 46, [47] = 47, [48] = 48, [49] = 49, [50] = 50, [51] = 51, [52] = 52, [53] = 53, [54] = 54, [55] = 55, [56] = 56, [57] = 57, [58] = 58, [59] = 59, [60] = 60, [61] = 60, [62] = 62, [63] = 59, [64] = 64, [65] = 65, [66] = 66, [67] = 67, [68] = 68, [69] = 69, [70] = 70, [71] = 71, [72] = 72, [73] = 73, [74] = 74, [75] = 75, [76] = 76, [77] = 77, [78] = 78, [79] = 79, [80] = 80, [81] = 81, [82] = 82, [83] = 83, [84] = 84, [85] = 85, [86] = 86, [87] = 87, [88] = 88, [89] = 89, [90] = 90, [91] = 91, [92] = 92, [93] = 93, [94] = 94, [95] = 95, [96] = 96, [97] = 97, [98] = 98, [99] = 99, [100] = 100, [101] = 101, [102] = 102, [103] = 103, [104] = 104, [105] = 105, [106] = 106, [107] = 107, [108] = 108, [109] = 109, [110] = 110, [111] = 111, [112] = 112, [113] = 113, [114] = 114, [115] = 115, [116] = 116, [117] = 117, [118] = 118, [119] = 119, [120] = 120, [121] = 121, [122] = 122, [123] = 123, [124] = 124, [125] = 125, [126] = 126, [127] = 127, [128] = 128, [129] = 129, [130] = 130, [131] = 131, [132] = 132, [133] = 133, [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 138, [139] = 139, [140] = 140, [141] = 141, [142] = 142, [143] = 143, [144] = 144, [145] = 145, [146] = 146, [147] = 147, [148] = 148, [149] = 149, [150] = 150, [151] = 151, [152] = 152, [153] = 153, [154] = 154, [155] = 155, [156] = 156, [157] = 157, [158] = 158, [159] = 159, [160] = 160, [161] = 161, [162] = 162, [163] = 163, [164] = 164, [165] = 165, [166] = 166, [167] = 167, [168] = 168, [169] = 169, [170] = 170, [171] = 171, [172] = 172, [173] = 173, [174] = 174, [175] = 175, [176] = 176, [177] = 177, [178] = 178, [179] = 179, [180] = 180, [181] = 180, [182] = 182, [183] = 183, [184] = 184, [185] = 185, [186] = 182, [187] = 187, [188] = 179, [189] = 189, [190] = 190, [191] = 176, [192] = 192, [193] = 193, [194] = 194, [195] = 195, [196] = 196, [197] = 197, [198] = 198, [199] = 199, [200] = 200, [201] = 201, [202] = 202, [203] = 203, [204] = 204, [205] = 205, [206] = 206, [207] = 207, [208] = 208, [209] = 209, [210] = 210, [211] = 211, [212] = 212, [213] = 213, [214] = 214, [215] = 215, [216] = 216, [217] = 217, [218] = 218, [219] = 219, [220] = 220, [221] = 221, [222] = 222, [223] = 223, [224] = 224, [225] = 225, [226] = 226, [227] = 227, [228] = 228, [229] = 229, [230] = 230, [231] = 231, [232] = 232, [233] = 233, [234] = 234, [235] = 235, [236] = 236, [237] = 237, [238] = 238, [239] = 239, [240] = 240, [241] = 241, [242] = 242, [243] = 243, [244] = 244, [245] = 245, [246] = 246, [247] = 247, [248] = 248, [249] = 229, [250] = 250, [251] = 224, [252] = 252, [253] = 253, [254] = 254, [255] = 255, [256] = 256, [257] = 227, [258] = 258, [259] = 259, [260] = 260, [261] = 261, }; static TSCharacterRange sym_escape_sequence_character_set_1[] = { {'\n', '\n'}, {'"', '"'}, {'\'', '\''}, {'0', '9'}, {'\\', '\\'}, {'a', 'b'}, {'f', 'f'}, {'n', 'n'}, {'r', 'r'}, {'t', 'v'}, {'x', 'x'}, {'z', 'z'}, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: if (eof) ADVANCE(20); ADVANCE_MAP( '"', 39, '#', 76, '%', 73, '&', 65, '\'', 40, '(', 52, ')', 53, '*', 70, '+', 68, ',', 24, '-', 69, '.', 27, '/', 71, '0', 33, ':', 28, ';', 22, '<', 29, '=', 23, '>', 31, '[', 54, '\\', 6, ']', 55, '^', 75, '{', 56, '|', 62, '}', 57, '~', 64, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(17); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(34); if (lookahead > ' ' && (lookahead < '{' || 0x9f < lookahead)) ADVANCE(77); END_STATE(); case 1: if (lookahead == '"') ADVANCE(39); if (lookahead == '-') ADVANCE(42); if (lookahead == '\\') ADVANCE(6); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(41); if (lookahead != 0) ADVANCE(43); END_STATE(); case 2: if (lookahead == '\'') ADVANCE(40); if (lookahead == '-') ADVANCE(45); if (lookahead == '\\') ADVANCE(6); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(44); if (lookahead != 0) ADVANCE(46); END_STATE(); case 3: if (lookahead == '.') ADVANCE(4); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); END_STATE(); case 4: if (lookahead == '.') ADVANCE(51); END_STATE(); case 5: if (lookahead == '.') ADVANCE(14); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(35); END_STATE(); case 6: if (lookahead == 'u') ADVANCE(7); if (lookahead == 'x') ADVANCE(16); if (lookahead == 'z') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(50); if (set_contains(sym_escape_sequence_character_set_1, 12, lookahead)) ADVANCE(47); END_STATE(); case 7: if (lookahead == '{') ADVANCE(15); END_STATE(); case 8: if (lookahead == '}') ADVANCE(47); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(8); END_STATE(); case 9: if (lookahead == '+' || lookahead == '-') ADVANCE(12); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38); END_STATE(); case 10: if (lookahead == 'L' || lookahead == 'l') ADVANCE(32); END_STATE(); case 11: if (lookahead == 'L' || lookahead == 'l') ADVANCE(10); END_STATE(); case 12: if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38); END_STATE(); case 13: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(47); END_STATE(); case 14: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(37); END_STATE(); case 15: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(8); END_STATE(); case 16: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(13); END_STATE(); case 17: if (eof) ADVANCE(20); ADVANCE_MAP( '"', 39, '#', 76, '%', 73, '&', 65, '\'', 40, '(', 52, ')', 53, '*', 70, '+', 68, ',', 24, '-', 69, '.', 27, '/', 71, '0', 33, ':', 28, ';', 22, '<', 29, '=', 23, '>', 31, '[', 54, ']', 55, '^', 75, '{', 56, '|', 62, '}', 57, '~', 64, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(17); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(34); if (lookahead > ' ' && (lookahead < '[' || '^' < lookahead) && (lookahead < '{' || 0x9f < lookahead)) ADVANCE(77); END_STATE(); case 18: if (eof) ADVANCE(20); ADVANCE_MAP( '"', 39, '#', 76, '\'', 40, '(', 52, ')', 53, '-', 69, '.', 3, '0', 33, ';', 22, '>', 30, '[', 54, '{', 56, '}', 57, '~', 63, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(18); if (('1' <= lookahead && lookahead <= '9')) ADVANCE(34); if (lookahead > ' ' && (lookahead < '%' || '>' < lookahead) && (lookahead < '[' || '^' < lookahead) && (lookahead < '{' || 0x9f < lookahead)) ADVANCE(77); END_STATE(); case 19: if (eof) ADVANCE(20); ADVANCE_MAP( '"', 39, '#', 21, '%', 73, '&', 65, '\'', 40, '(', 52, ')', 53, '*', 70, '+', 68, ',', 24, '-', 69, '.', 26, '/', 71, ':', 28, ';', 22, '<', 29, '=', 23, '>', 31, '[', 54, ']', 55, '^', 75, '{', 56, '|', 62, '}', 57, '~', 64, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(19); if (lookahead > ' ' && (lookahead < '%' || '>' < lookahead) && (lookahead < '[' || '^' < lookahead) && (lookahead < '{' || 0x9f < lookahead)) ADVANCE(77); END_STATE(); case 20: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 21: ACCEPT_TOKEN(sym_hash_bang_line); if (lookahead != 0 && lookahead != '\n') ADVANCE(21); END_STATE(); case 22: ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 23: ACCEPT_TOKEN(anon_sym_EQ); if (lookahead == '=') ADVANCE(59); END_STATE(); case 24: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 25: ACCEPT_TOKEN(anon_sym_COLON_COLON); END_STATE(); case 26: ACCEPT_TOKEN(anon_sym_DOT); if (lookahead == '.') ADVANCE(74); END_STATE(); case 27: ACCEPT_TOKEN(anon_sym_DOT); if (lookahead == '.') ADVANCE(74); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); END_STATE(); case 28: ACCEPT_TOKEN(anon_sym_COLON); if (lookahead == ':') ADVANCE(25); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_LT); if (lookahead == '<') ADVANCE(66); if (lookahead == '=') ADVANCE(58); END_STATE(); case 30: ACCEPT_TOKEN(anon_sym_GT); END_STATE(); case 31: ACCEPT_TOKEN(anon_sym_GT); if (lookahead == '=') ADVANCE(61); if (lookahead == '>') ADVANCE(67); END_STATE(); case 32: ACCEPT_TOKEN(sym_number); END_STATE(); case 33: ACCEPT_TOKEN(sym_number); ADVANCE_MAP( '.', 36, 'E', 9, 'e', 9, 'I', 32, 'i', 32, 'L', 10, 'l', 10, 'U', 11, 'u', 11, 'X', 5, 'x', 5, ); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34); END_STATE(); case 34: ACCEPT_TOKEN(sym_number); ADVANCE_MAP( '.', 36, 'E', 9, 'e', 9, 'I', 32, 'i', 32, 'L', 10, 'l', 10, 'U', 11, 'u', 11, ); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(34); END_STATE(); case 35: ACCEPT_TOKEN(sym_number); ADVANCE_MAP( '.', 37, 'I', 32, 'i', 32, 'L', 10, 'l', 10, 'P', 9, 'p', 9, 'U', 11, 'u', 11, ); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(35); END_STATE(); case 36: ACCEPT_TOKEN(sym_number); if (lookahead == 'E' || lookahead == 'e') ADVANCE(9); if (lookahead == 'I' || lookahead == 'i') ADVANCE(32); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(36); END_STATE(); case 37: ACCEPT_TOKEN(sym_number); if (lookahead == 'I' || lookahead == 'i') ADVANCE(32); if (lookahead == 'P' || lookahead == 'p') ADVANCE(9); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(37); END_STATE(); case 38: ACCEPT_TOKEN(sym_number); if (lookahead == 'I' || lookahead == 'i') ADVANCE(32); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(38); END_STATE(); case 39: ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); case 40: ACCEPT_TOKEN(anon_sym_SQUOTE); END_STATE(); case 41: ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1); if (lookahead == '-') ADVANCE(42); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(41); if (lookahead != 0 && lookahead != '"' && lookahead != '\\') ADVANCE(43); END_STATE(); case 42: ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1); if (lookahead == '-') ADVANCE(43); if (lookahead != 0 && lookahead != '"' && lookahead != '\\') ADVANCE(43); END_STATE(); case 43: ACCEPT_TOKEN(aux_sym__doublequote_string_content_token1); if (lookahead != 0 && lookahead != '"' && lookahead != '\\') ADVANCE(43); END_STATE(); case 44: ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1); if (lookahead == '-') ADVANCE(45); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(44); if (lookahead != 0 && lookahead != '\'' && lookahead != '\\') ADVANCE(46); END_STATE(); case 45: ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1); if (lookahead == '-') ADVANCE(46); if (lookahead != 0 && lookahead != '\'' && lookahead != '\\') ADVANCE(46); END_STATE(); case 46: ACCEPT_TOKEN(aux_sym__singlequote_string_content_token1); if (lookahead != 0 && lookahead != '\'' && lookahead != '\\') ADVANCE(46); END_STATE(); case 47: ACCEPT_TOKEN(sym_escape_sequence); END_STATE(); case 48: ACCEPT_TOKEN(sym_escape_sequence); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(48); END_STATE(); case 49: ACCEPT_TOKEN(sym_escape_sequence); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(47); END_STATE(); case 50: ACCEPT_TOKEN(sym_escape_sequence); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(49); END_STATE(); case 51: ACCEPT_TOKEN(sym_vararg_expression); END_STATE(); case 52: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 53: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 54: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 55: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 56: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 57: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 58: ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 59: ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 60: ACCEPT_TOKEN(anon_sym_TILDE_EQ); END_STATE(); case 61: ACCEPT_TOKEN(anon_sym_GT_EQ); END_STATE(); case 62: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); case 63: ACCEPT_TOKEN(anon_sym_TILDE); END_STATE(); case 64: ACCEPT_TOKEN(anon_sym_TILDE); if (lookahead == '=') ADVANCE(60); END_STATE(); case 65: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); case 66: ACCEPT_TOKEN(anon_sym_LT_LT); END_STATE(); case 67: ACCEPT_TOKEN(anon_sym_GT_GT); END_STATE(); case 68: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 69: ACCEPT_TOKEN(anon_sym_DASH); if (lookahead == '-') ADVANCE(78); END_STATE(); case 70: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 71: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '/') ADVANCE(72); END_STATE(); case 72: ACCEPT_TOKEN(anon_sym_SLASH_SLASH); END_STATE(); case 73: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 74: ACCEPT_TOKEN(anon_sym_DOT_DOT); END_STATE(); case 75: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); case 76: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); case 77: ACCEPT_TOKEN(sym_identifier); if (lookahead > ' ' && lookahead != '"' && lookahead != '#' && (lookahead < '%' || '/' < lookahead) && (lookahead < ':' || '>' < lookahead) && (lookahead < '[' || '^' < lookahead) && (lookahead < '{' || 0x9f < lookahead)) ADVANCE(77); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_DASH_DASH); END_STATE(); case 79: ACCEPT_TOKEN(anon_sym_DASH_DASH); if (lookahead != 0 && lookahead != '\n' && lookahead != '\r') ADVANCE(82); END_STATE(); case 80: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead == '-') ADVANCE(81); if (lookahead == '\t' || lookahead == 0x0b || lookahead == '\f' || lookahead == ' ') ADVANCE(80); if (lookahead != 0 && (lookahead < '\t' || '\r' < lookahead)) ADVANCE(82); END_STATE(); case 81: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead == '-') ADVANCE(79); if (lookahead != 0 && lookahead != '\n' && lookahead != '\r') ADVANCE(82); END_STATE(); case 82: ACCEPT_TOKEN(aux_sym_comment_token1); if (lookahead != 0 && lookahead != '\n' && lookahead != '\r') ADVANCE(82); END_STATE(); default: return false; } } static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { START_LEXER(); eof = lexer->eof(lexer); switch (state) { case 0: ADVANCE_MAP( 'a', 1, 'b', 2, 'd', 3, 'e', 4, 'f', 5, 'g', 6, 'i', 7, 'l', 8, 'n', 9, 'o', 10, 'r', 11, 't', 12, 'u', 13, 'w', 14, ); if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') SKIP(0); END_STATE(); case 1: if (lookahead == 'n') ADVANCE(15); END_STATE(); case 2: if (lookahead == 'r') ADVANCE(16); END_STATE(); case 3: if (lookahead == 'o') ADVANCE(17); END_STATE(); case 4: if (lookahead == 'l') ADVANCE(18); if (lookahead == 'n') ADVANCE(19); END_STATE(); case 5: if (lookahead == 'a') ADVANCE(20); if (lookahead == 'o') ADVANCE(21); if (lookahead == 'u') ADVANCE(22); END_STATE(); case 6: if (lookahead == 'o') ADVANCE(23); END_STATE(); case 7: if (lookahead == 'f') ADVANCE(24); if (lookahead == 'n') ADVANCE(25); END_STATE(); case 8: if (lookahead == 'o') ADVANCE(26); END_STATE(); case 9: if (lookahead == 'i') ADVANCE(27); if (lookahead == 'o') ADVANCE(28); END_STATE(); case 10: if (lookahead == 'r') ADVANCE(29); END_STATE(); case 11: if (lookahead == 'e') ADVANCE(30); END_STATE(); case 12: if (lookahead == 'h') ADVANCE(31); if (lookahead == 'r') ADVANCE(32); END_STATE(); case 13: if (lookahead == 'n') ADVANCE(33); END_STATE(); case 14: if (lookahead == 'h') ADVANCE(34); END_STATE(); case 15: if (lookahead == 'd') ADVANCE(35); END_STATE(); case 16: if (lookahead == 'e') ADVANCE(36); END_STATE(); case 17: ACCEPT_TOKEN(anon_sym_do); END_STATE(); case 18: if (lookahead == 's') ADVANCE(37); END_STATE(); case 19: if (lookahead == 'd') ADVANCE(38); END_STATE(); case 20: if (lookahead == 'l') ADVANCE(39); END_STATE(); case 21: if (lookahead == 'r') ADVANCE(40); END_STATE(); case 22: if (lookahead == 'n') ADVANCE(41); END_STATE(); case 23: if (lookahead == 't') ADVANCE(42); END_STATE(); case 24: ACCEPT_TOKEN(anon_sym_if); END_STATE(); case 25: ACCEPT_TOKEN(anon_sym_in); END_STATE(); case 26: if (lookahead == 'c') ADVANCE(43); END_STATE(); case 27: if (lookahead == 'l') ADVANCE(44); END_STATE(); case 28: if (lookahead == 't') ADVANCE(45); END_STATE(); case 29: ACCEPT_TOKEN(anon_sym_or); END_STATE(); case 30: if (lookahead == 'p') ADVANCE(46); if (lookahead == 't') ADVANCE(47); END_STATE(); case 31: if (lookahead == 'e') ADVANCE(48); END_STATE(); case 32: if (lookahead == 'u') ADVANCE(49); END_STATE(); case 33: if (lookahead == 't') ADVANCE(50); END_STATE(); case 34: if (lookahead == 'i') ADVANCE(51); END_STATE(); case 35: ACCEPT_TOKEN(anon_sym_and); END_STATE(); case 36: if (lookahead == 'a') ADVANCE(52); END_STATE(); case 37: if (lookahead == 'e') ADVANCE(53); END_STATE(); case 38: ACCEPT_TOKEN(anon_sym_end); END_STATE(); case 39: if (lookahead == 's') ADVANCE(54); END_STATE(); case 40: ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 41: if (lookahead == 'c') ADVANCE(55); END_STATE(); case 42: if (lookahead == 'o') ADVANCE(56); END_STATE(); case 43: if (lookahead == 'a') ADVANCE(57); END_STATE(); case 44: ACCEPT_TOKEN(sym_nil); END_STATE(); case 45: ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 46: if (lookahead == 'e') ADVANCE(58); END_STATE(); case 47: if (lookahead == 'u') ADVANCE(59); END_STATE(); case 48: if (lookahead == 'n') ADVANCE(60); END_STATE(); case 49: if (lookahead == 'e') ADVANCE(61); END_STATE(); case 50: if (lookahead == 'i') ADVANCE(62); END_STATE(); case 51: if (lookahead == 'l') ADVANCE(63); END_STATE(); case 52: if (lookahead == 'k') ADVANCE(64); END_STATE(); case 53: ACCEPT_TOKEN(anon_sym_else); if (lookahead == 'i') ADVANCE(65); END_STATE(); case 54: if (lookahead == 'e') ADVANCE(66); END_STATE(); case 55: if (lookahead == 't') ADVANCE(67); END_STATE(); case 56: ACCEPT_TOKEN(anon_sym_goto); END_STATE(); case 57: if (lookahead == 'l') ADVANCE(68); END_STATE(); case 58: if (lookahead == 'a') ADVANCE(69); END_STATE(); case 59: if (lookahead == 'r') ADVANCE(70); END_STATE(); case 60: ACCEPT_TOKEN(anon_sym_then); END_STATE(); case 61: ACCEPT_TOKEN(sym_true); END_STATE(); case 62: if (lookahead == 'l') ADVANCE(71); END_STATE(); case 63: if (lookahead == 'e') ADVANCE(72); END_STATE(); case 64: ACCEPT_TOKEN(sym_break_statement); END_STATE(); case 65: if (lookahead == 'f') ADVANCE(73); END_STATE(); case 66: ACCEPT_TOKEN(sym_false); END_STATE(); case 67: if (lookahead == 'i') ADVANCE(74); END_STATE(); case 68: ACCEPT_TOKEN(anon_sym_local); END_STATE(); case 69: if (lookahead == 't') ADVANCE(75); END_STATE(); case 70: if (lookahead == 'n') ADVANCE(76); END_STATE(); case 71: ACCEPT_TOKEN(anon_sym_until); END_STATE(); case 72: ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 73: ACCEPT_TOKEN(anon_sym_elseif); END_STATE(); case 74: if (lookahead == 'o') ADVANCE(77); END_STATE(); case 75: ACCEPT_TOKEN(anon_sym_repeat); END_STATE(); case 76: ACCEPT_TOKEN(anon_sym_return); END_STATE(); case 77: if (lookahead == 'n') ADVANCE(78); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_function); END_STATE(); default: return false; } } static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0, .external_lex_state = 1}, [1] = {.lex_state = 19, .external_lex_state = 2}, [2] = {.lex_state = 19, .external_lex_state = 3}, [3] = {.lex_state = 19, .external_lex_state = 3}, [4] = {.lex_state = 19, .external_lex_state = 3}, [5] = {.lex_state = 19, .external_lex_state = 3}, [6] = {.lex_state = 19, .external_lex_state = 3}, [7] = {.lex_state = 19, .external_lex_state = 3}, [8] = {.lex_state = 19, .external_lex_state = 3}, [9] = {.lex_state = 19, .external_lex_state = 3}, [10] = {.lex_state = 19, .external_lex_state = 3}, [11] = {.lex_state = 19, .external_lex_state = 3}, [12] = {.lex_state = 19, .external_lex_state = 3}, [13] = {.lex_state = 19, .external_lex_state = 3}, [14] = {.lex_state = 19, .external_lex_state = 3}, [15] = {.lex_state = 19, .external_lex_state = 3}, [16] = {.lex_state = 19, .external_lex_state = 3}, [17] = {.lex_state = 19, .external_lex_state = 3}, [18] = {.lex_state = 19, .external_lex_state = 3}, [19] = {.lex_state = 0, .external_lex_state = 2}, [20] = {.lex_state = 0, .external_lex_state = 2}, [21] = {.lex_state = 0, .external_lex_state = 2}, [22] = {.lex_state = 0, .external_lex_state = 2}, [23] = {.lex_state = 0, .external_lex_state = 2}, [24] = {.lex_state = 0, .external_lex_state = 2}, [25] = {.lex_state = 0, .external_lex_state = 2}, [26] = {.lex_state = 0, .external_lex_state = 2}, [27] = {.lex_state = 0, .external_lex_state = 2}, [28] = {.lex_state = 0, .external_lex_state = 2}, [29] = {.lex_state = 0, .external_lex_state = 2}, [30] = {.lex_state = 0, .external_lex_state = 2}, [31] = {.lex_state = 0, .external_lex_state = 2}, [32] = {.lex_state = 0, .external_lex_state = 2}, [33] = {.lex_state = 0, .external_lex_state = 2}, [34] = {.lex_state = 0, .external_lex_state = 2}, [35] = {.lex_state = 0, .external_lex_state = 2}, [36] = {.lex_state = 0, .external_lex_state = 2}, [37] = {.lex_state = 0, .external_lex_state = 2}, [38] = {.lex_state = 0, .external_lex_state = 2}, [39] = {.lex_state = 0, .external_lex_state = 2}, [40] = {.lex_state = 0, .external_lex_state = 2}, [41] = {.lex_state = 0, .external_lex_state = 2}, [42] = {.lex_state = 0, .external_lex_state = 2}, [43] = {.lex_state = 0, .external_lex_state = 2}, [44] = {.lex_state = 0, .external_lex_state = 2}, [45] = {.lex_state = 0, .external_lex_state = 2}, [46] = {.lex_state = 0, .external_lex_state = 2}, [47] = {.lex_state = 0, .external_lex_state = 2}, [48] = {.lex_state = 0, .external_lex_state = 2}, [49] = {.lex_state = 0, .external_lex_state = 2}, [50] = {.lex_state = 0, .external_lex_state = 2}, [51] = {.lex_state = 0, .external_lex_state = 2}, [52] = {.lex_state = 0, .external_lex_state = 2}, [53] = {.lex_state = 0, .external_lex_state = 2}, [54] = {.lex_state = 0, .external_lex_state = 2}, [55] = {.lex_state = 0, .external_lex_state = 2}, [56] = {.lex_state = 0, .external_lex_state = 2}, [57] = {.lex_state = 0, .external_lex_state = 2}, [58] = {.lex_state = 0, .external_lex_state = 2}, [59] = {.lex_state = 18, .external_lex_state = 3}, [60] = {.lex_state = 18, .external_lex_state = 3}, [61] = {.lex_state = 18, .external_lex_state = 3}, [62] = {.lex_state = 18, .external_lex_state = 3}, [63] = {.lex_state = 18, .external_lex_state = 3}, [64] = {.lex_state = 18, .external_lex_state = 3}, [65] = {.lex_state = 19, .external_lex_state = 3}, [66] = {.lex_state = 18, .external_lex_state = 3}, [67] = {.lex_state = 18, .external_lex_state = 3}, [68] = {.lex_state = 18, .external_lex_state = 3}, [69] = {.lex_state = 18, .external_lex_state = 3}, [70] = {.lex_state = 18, .external_lex_state = 3}, [71] = {.lex_state = 18, .external_lex_state = 3}, [72] = {.lex_state = 18, .external_lex_state = 3}, [73] = {.lex_state = 18, .external_lex_state = 3}, [74] = {.lex_state = 18, .external_lex_state = 3}, [75] = {.lex_state = 18, .external_lex_state = 3}, [76] = {.lex_state = 18, .external_lex_state = 3}, [77] = {.lex_state = 18, .external_lex_state = 3}, [78] = {.lex_state = 18, .external_lex_state = 3}, [79] = {.lex_state = 18, .external_lex_state = 3}, [80] = {.lex_state = 18, .external_lex_state = 3}, [81] = {.lex_state = 18, .external_lex_state = 3}, [82] = {.lex_state = 18, .external_lex_state = 3}, [83] = {.lex_state = 18, .external_lex_state = 3}, [84] = {.lex_state = 18, .external_lex_state = 3}, [85] = {.lex_state = 18, .external_lex_state = 3}, [86] = {.lex_state = 18, .external_lex_state = 3}, [87] = {.lex_state = 18, .external_lex_state = 3}, [88] = {.lex_state = 18, .external_lex_state = 3}, [89] = {.lex_state = 18, .external_lex_state = 3}, [90] = {.lex_state = 18, .external_lex_state = 3}, [91] = {.lex_state = 18, .external_lex_state = 3}, [92] = {.lex_state = 18, .external_lex_state = 3}, [93] = {.lex_state = 18, .external_lex_state = 3}, [94] = {.lex_state = 18, .external_lex_state = 3}, [95] = {.lex_state = 18, .external_lex_state = 3}, [96] = {.lex_state = 18, .external_lex_state = 3}, [97] = {.lex_state = 18, .external_lex_state = 3}, [98] = {.lex_state = 0, .external_lex_state = 2}, [99] = {.lex_state = 0, .external_lex_state = 2}, [100] = {.lex_state = 19, .external_lex_state = 3}, [101] = {.lex_state = 0, .external_lex_state = 2}, [102] = {.lex_state = 0, .external_lex_state = 2}, [103] = {.lex_state = 0, .external_lex_state = 2}, [104] = {.lex_state = 0, .external_lex_state = 2}, [105] = {.lex_state = 0, .external_lex_state = 2}, [106] = {.lex_state = 0, .external_lex_state = 2}, [107] = {.lex_state = 0, .external_lex_state = 2}, [108] = {.lex_state = 0, .external_lex_state = 2}, [109] = {.lex_state = 0, .external_lex_state = 2}, [110] = {.lex_state = 0, .external_lex_state = 2}, [111] = {.lex_state = 0, .external_lex_state = 2}, [112] = {.lex_state = 0, .external_lex_state = 2}, [113] = {.lex_state = 0, .external_lex_state = 2}, [114] = {.lex_state = 0, .external_lex_state = 2}, [115] = {.lex_state = 0, .external_lex_state = 2}, [116] = {.lex_state = 0, .external_lex_state = 2}, [117] = {.lex_state = 0, .external_lex_state = 2}, [118] = {.lex_state = 0, .external_lex_state = 2}, [119] = {.lex_state = 0, .external_lex_state = 2}, [120] = {.lex_state = 0, .external_lex_state = 2}, [121] = {.lex_state = 0, .external_lex_state = 2}, [122] = {.lex_state = 0, .external_lex_state = 2}, [123] = {.lex_state = 0, .external_lex_state = 2}, [124] = {.lex_state = 0, .external_lex_state = 2}, [125] = {.lex_state = 0, .external_lex_state = 2}, [126] = {.lex_state = 0, .external_lex_state = 2}, [127] = {.lex_state = 0, .external_lex_state = 2}, [128] = {.lex_state = 0, .external_lex_state = 2}, [129] = {.lex_state = 0, .external_lex_state = 2}, [130] = {.lex_state = 0, .external_lex_state = 2}, [131] = {.lex_state = 0, .external_lex_state = 2}, [132] = {.lex_state = 0, .external_lex_state = 2}, [133] = {.lex_state = 0, .external_lex_state = 2}, [134] = {.lex_state = 0, .external_lex_state = 2}, [135] = {.lex_state = 0, .external_lex_state = 2}, [136] = {.lex_state = 0, .external_lex_state = 2}, [137] = {.lex_state = 0, .external_lex_state = 2}, [138] = {.lex_state = 0, .external_lex_state = 2}, [139] = {.lex_state = 0, .external_lex_state = 2}, [140] = {.lex_state = 0, .external_lex_state = 2}, [141] = {.lex_state = 0, .external_lex_state = 2}, [142] = {.lex_state = 0, .external_lex_state = 2}, [143] = {.lex_state = 0, .external_lex_state = 2}, [144] = {.lex_state = 0, .external_lex_state = 2}, [145] = {.lex_state = 0, .external_lex_state = 2}, [146] = {.lex_state = 0, .external_lex_state = 2}, [147] = {.lex_state = 0, .external_lex_state = 2}, [148] = {.lex_state = 0, .external_lex_state = 2}, [149] = {.lex_state = 0, .external_lex_state = 2}, [150] = {.lex_state = 0, .external_lex_state = 2}, [151] = {.lex_state = 0, .external_lex_state = 2}, [152] = {.lex_state = 0, .external_lex_state = 2}, [153] = {.lex_state = 18, .external_lex_state = 3}, [154] = {.lex_state = 0, .external_lex_state = 2}, [155] = {.lex_state = 0, .external_lex_state = 2}, [156] = {.lex_state = 19, .external_lex_state = 3}, [157] = {.lex_state = 19, .external_lex_state = 3}, [158] = {.lex_state = 19, .external_lex_state = 3}, [159] = {.lex_state = 0, .external_lex_state = 3}, [160] = {.lex_state = 0, .external_lex_state = 2}, [161] = {.lex_state = 0, .external_lex_state = 2}, [162] = {.lex_state = 0, .external_lex_state = 2}, [163] = {.lex_state = 19, .external_lex_state = 3}, [164] = {.lex_state = 0, .external_lex_state = 2}, [165] = {.lex_state = 0, .external_lex_state = 2}, [166] = {.lex_state = 0, .external_lex_state = 2}, [167] = {.lex_state = 0, .external_lex_state = 2}, [168] = {.lex_state = 0, .external_lex_state = 2}, [169] = {.lex_state = 0, .external_lex_state = 3}, [170] = {.lex_state = 0, .external_lex_state = 2}, [171] = {.lex_state = 0, .external_lex_state = 2}, [172] = {.lex_state = 0, .external_lex_state = 2}, [173] = {.lex_state = 0, .external_lex_state = 2}, [174] = {.lex_state = 0, .external_lex_state = 2}, [175] = {.lex_state = 0, .external_lex_state = 2}, [176] = {.lex_state = 1, .external_lex_state = 2}, [177] = {.lex_state = 0, .external_lex_state = 2}, [178] = {.lex_state = 18, .external_lex_state = 2}, [179] = {.lex_state = 1, .external_lex_state = 2}, [180] = {.lex_state = 2, .external_lex_state = 2}, [181] = {.lex_state = 2, .external_lex_state = 2}, [182] = {.lex_state = 2, .external_lex_state = 2}, [183] = {.lex_state = 0, .external_lex_state = 2}, [184] = {.lex_state = 0, .external_lex_state = 2}, [185] = {.lex_state = 0, .external_lex_state = 2}, [186] = {.lex_state = 2, .external_lex_state = 2}, [187] = {.lex_state = 0, .external_lex_state = 2}, [188] = {.lex_state = 1, .external_lex_state = 2}, [189] = {.lex_state = 1, .external_lex_state = 2}, [190] = {.lex_state = 0, .external_lex_state = 2}, [191] = {.lex_state = 1, .external_lex_state = 2}, [192] = {.lex_state = 2, .external_lex_state = 2}, [193] = {.lex_state = 19, .external_lex_state = 2}, [194] = {.lex_state = 0, .external_lex_state = 2}, [195] = {.lex_state = 0, .external_lex_state = 2}, [196] = {.lex_state = 0, .external_lex_state = 2}, [197] = {.lex_state = 0, .external_lex_state = 2}, [198] = {.lex_state = 0, .external_lex_state = 2}, [199] = {.lex_state = 0, .external_lex_state = 2}, [200] = {.lex_state = 0, .external_lex_state = 2}, [201] = {.lex_state = 19, .external_lex_state = 2}, [202] = {.lex_state = 0, .external_lex_state = 2}, [203] = {.lex_state = 19, .external_lex_state = 2}, [204] = {.lex_state = 0, .external_lex_state = 2}, [205] = {.lex_state = 0, .external_lex_state = 2}, [206] = {.lex_state = 1, .external_lex_state = 2}, [207] = {.lex_state = 2, .external_lex_state = 2}, [208] = {.lex_state = 0, .external_lex_state = 2}, [209] = {.lex_state = 19, .external_lex_state = 2}, [210] = {.lex_state = 0, .external_lex_state = 2}, [211] = {.lex_state = 0, .external_lex_state = 2}, [212] = {.lex_state = 18, .external_lex_state = 2}, [213] = {.lex_state = 18, .external_lex_state = 2}, [214] = {.lex_state = 0, .external_lex_state = 2}, [215] = {.lex_state = 0, .external_lex_state = 2}, [216] = {.lex_state = 0, .external_lex_state = 2}, [217] = {.lex_state = 0, .external_lex_state = 2}, [218] = {.lex_state = 0, .external_lex_state = 2}, [219] = {.lex_state = 0, .external_lex_state = 4}, [220] = {.lex_state = 0, .external_lex_state = 2}, [221] = {.lex_state = 0, .external_lex_state = 2}, [222] = {.lex_state = 0, .external_lex_state = 2}, [223] = {.lex_state = 0, .external_lex_state = 2}, [224] = {.lex_state = 0, .external_lex_state = 2}, [225] = {.lex_state = 18, .external_lex_state = 2}, [226] = {.lex_state = 0, .external_lex_state = 2}, [227] = {.lex_state = 0, .external_lex_state = 5}, [228] = {.lex_state = 0, .external_lex_state = 2}, [229] = {.lex_state = 0, .external_lex_state = 6}, [230] = {.lex_state = 0, .external_lex_state = 2}, [231] = {.lex_state = 0, .external_lex_state = 2}, [232] = {.lex_state = 0, .external_lex_state = 2}, [233] = {.lex_state = 0, .external_lex_state = 2}, [234] = {.lex_state = 0, .external_lex_state = 2}, [235] = {.lex_state = 0, .external_lex_state = 2}, [236] = {.lex_state = 0, .external_lex_state = 2}, [237] = {.lex_state = 0, .external_lex_state = 2}, [238] = {.lex_state = 0, .external_lex_state = 2}, [239] = {.lex_state = 0, .external_lex_state = 2}, [240] = {.lex_state = 0, .external_lex_state = 2}, [241] = {.lex_state = 0, .external_lex_state = 2}, [242] = {.lex_state = 0, .external_lex_state = 2}, [243] = {.lex_state = 0, .external_lex_state = 2}, [244] = {.lex_state = 0, .external_lex_state = 2}, [245] = {.lex_state = 0, .external_lex_state = 2}, [246] = {.lex_state = 0, .external_lex_state = 2}, [247] = {.lex_state = 0, .external_lex_state = 2}, [248] = {.lex_state = 0, .external_lex_state = 2}, [249] = {.lex_state = 0, .external_lex_state = 6}, [250] = {.lex_state = 0, .external_lex_state = 2}, [251] = {.lex_state = 0, .external_lex_state = 2}, [252] = {.lex_state = 0, .external_lex_state = 7}, [253] = {.lex_state = 0, .external_lex_state = 2}, [254] = {.lex_state = 0, .external_lex_state = 2}, [255] = {.lex_state = 0, .external_lex_state = 2}, [256] = {.lex_state = 0, .external_lex_state = 2}, [257] = {.lex_state = 0, .external_lex_state = 5}, [258] = {.lex_state = 0, .external_lex_state = 2}, [259] = {.lex_state = 80, .external_lex_state = 2}, [260] = {(TSStateId)(-1)}, [261] = {(TSStateId)(-1)}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [sym_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), [anon_sym_return] = ACTIONS(1), [anon_sym_SEMI] = ACTIONS(1), [anon_sym_EQ] = ACTIONS(1), [anon_sym_COMMA] = ACTIONS(1), [anon_sym_COLON_COLON] = ACTIONS(1), [sym_break_statement] = ACTIONS(1), [anon_sym_goto] = ACTIONS(1), [anon_sym_do] = ACTIONS(1), [anon_sym_end] = ACTIONS(1), [anon_sym_while] = ACTIONS(1), [anon_sym_repeat] = ACTIONS(1), [anon_sym_until] = ACTIONS(1), [anon_sym_if] = ACTIONS(1), [anon_sym_then] = ACTIONS(1), [anon_sym_elseif] = ACTIONS(1), [anon_sym_else] = ACTIONS(1), [anon_sym_for] = ACTIONS(1), [anon_sym_in] = ACTIONS(1), [anon_sym_function] = ACTIONS(1), [anon_sym_local] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [anon_sym_COLON] = ACTIONS(1), [anon_sym_LT] = ACTIONS(1), [anon_sym_GT] = ACTIONS(1), [sym_nil] = ACTIONS(1), [sym_false] = ACTIONS(1), [sym_true] = ACTIONS(1), [sym_number] = ACTIONS(1), [anon_sym_DQUOTE] = ACTIONS(1), [anon_sym_SQUOTE] = ACTIONS(1), [sym_escape_sequence] = ACTIONS(1), [anon_sym_LPAREN] = ACTIONS(1), [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), [anon_sym_or] = ACTIONS(1), [anon_sym_and] = ACTIONS(1), [anon_sym_LT_EQ] = ACTIONS(1), [anon_sym_EQ_EQ] = ACTIONS(1), [anon_sym_TILDE_EQ] = ACTIONS(1), [anon_sym_GT_EQ] = ACTIONS(1), [anon_sym_PIPE] = ACTIONS(1), [anon_sym_TILDE] = ACTIONS(1), [anon_sym_AMP] = ACTIONS(1), [anon_sym_LT_LT] = ACTIONS(1), [anon_sym_GT_GT] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), [anon_sym_SLASH] = ACTIONS(1), [anon_sym_SLASH_SLASH] = ACTIONS(1), [anon_sym_PERCENT] = ACTIONS(1), [anon_sym_DOT_DOT] = ACTIONS(1), [anon_sym_CARET] = ACTIONS(1), [anon_sym_not] = ACTIONS(1), [anon_sym_POUND] = ACTIONS(1), [anon_sym_DASH_DASH] = ACTIONS(3), [sym__block_comment_start] = ACTIONS(5), [sym__block_comment_content] = ACTIONS(1), [sym__block_comment_end] = ACTIONS(1), [sym__block_string_start] = ACTIONS(1), [sym__block_string_content] = ACTIONS(1), [sym__block_string_end] = ACTIONS(1), }, [1] = { [sym_chunk] = STATE(255), [sym_statement] = STATE(148), [sym_return_statement] = STATE(254), [sym_empty_statement] = STATE(131), [sym_assignment_statement] = STATE(131), [sym__variable_assignment_varlist] = STATE(253), [sym_label_statement] = STATE(131), [sym_goto_statement] = STATE(131), [sym_do_statement] = STATE(131), [sym_while_statement] = STATE(131), [sym_repeat_statement] = STATE(131), [sym_if_statement] = STATE(131), [sym_for_statement] = STATE(131), [sym_declaration] = STATE(149), [sym_function_declaration] = STATE(150), [sym__local_function_declaration] = STATE(126), [sym_variable_declaration] = STATE(152), [sym__prefix_expression] = STATE(156), [sym_variable] = STATE(157), [sym_bracket_index_expression] = STATE(4), [sym_dot_index_expression] = STATE(4), [sym_function_call] = STATE(100), [sym_method_index_expression] = STATE(159), [sym_parenthesized_expression] = STATE(163), [sym_comment] = STATE(1), [aux_sym_chunk_repeat1] = STATE(58), [ts_builtin_sym_end] = ACTIONS(7), [sym_identifier] = ACTIONS(9), [sym_hash_bang_line] = ACTIONS(11), [anon_sym_return] = ACTIONS(13), [anon_sym_SEMI] = ACTIONS(15), [anon_sym_COLON_COLON] = ACTIONS(17), [sym_break_statement] = ACTIONS(19), [anon_sym_goto] = ACTIONS(21), [anon_sym_do] = ACTIONS(23), [anon_sym_while] = ACTIONS(25), [anon_sym_repeat] = ACTIONS(27), [anon_sym_if] = ACTIONS(29), [anon_sym_for] = ACTIONS(31), [anon_sym_function] = ACTIONS(33), [anon_sym_local] = ACTIONS(35), [anon_sym_LPAREN] = ACTIONS(37), [anon_sym_DASH_DASH] = ACTIONS(3), [sym__block_comment_start] = ACTIONS(5), }, }; static const uint16_t ts_small_parse_table[] = { [0] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(2), 1, sym_comment, ACTIONS(41), 26, anon_sym_return, anon_sym_EQ, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(39), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [67] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(3), 1, sym_comment, ACTIONS(45), 26, anon_sym_return, anon_sym_EQ, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(43), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [134] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(4), 1, sym_comment, ACTIONS(49), 26, anon_sym_return, anon_sym_EQ, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(47), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [201] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(5), 1, sym_comment, ACTIONS(53), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(51), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [267] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(6), 1, sym_comment, ACTIONS(57), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(55), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [333] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(7), 1, sym_comment, ACTIONS(61), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(59), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [399] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(8), 1, sym_comment, ACTIONS(65), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(63), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [465] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(9), 1, sym_comment, ACTIONS(71), 2, anon_sym_DOT, anon_sym_COLON, ACTIONS(73), 6, sym__block_string_start, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, ACTIONS(67), 21, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(69), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [535] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(10), 1, sym_comment, ACTIONS(77), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(75), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [601] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(11), 1, sym_comment, ACTIONS(81), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(79), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [667] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(12), 1, sym_comment, ACTIONS(85), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(83), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [733] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(13), 1, sym_comment, ACTIONS(89), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(87), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [799] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(14), 1, sym_comment, ACTIONS(85), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(83), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [865] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(15), 1, sym_comment, ACTIONS(93), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(91), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [931] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(16), 1, sym_comment, ACTIONS(97), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(95), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [997] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(17), 1, sym_comment, ACTIONS(101), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(99), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [1063] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(18), 1, sym_comment, ACTIONS(105), 25, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_DOT, anon_sym_COLON, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, ACTIONS(103), 27, sym__block_string_start, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [1129] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(19), 1, sym_comment, ACTIONS(99), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(101), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [1188] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, STATE(20), 1, sym_comment, ACTIONS(107), 21, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, ACTIONS(109), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [1249] = 11, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, STATE(21), 1, sym_comment, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 16, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(115), 21, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, sym_identifier, [1320] = 12, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, STATE(22), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 14, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, ACTIONS(115), 21, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, sym_identifier, [1393] = 13, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, STATE(23), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 13, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, ACTIONS(115), 21, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, sym_identifier, [1468] = 14, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, STATE(24), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 13, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, ACTIONS(115), 20, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, sym_identifier, [1545] = 17, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, STATE(25), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(113), 8, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, ACTIONS(115), 18, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_or, anon_sym_and, sym_identifier, [1628] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(139), 1, anon_sym_and, STATE(26), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(113), 8, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, ACTIONS(115), 17, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_or, sym_identifier, [1713] = 15, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, STATE(27), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 12, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(115), 20, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, sym_identifier, [1792] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(28), 1, sym_comment, ACTIONS(141), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(143), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [1851] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(29), 1, sym_comment, ACTIONS(103), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(105), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [1910] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(30), 1, sym_comment, ACTIONS(51), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(53), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [1969] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(31), 1, sym_comment, ACTIONS(145), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(147), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2028] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(32), 1, sym_comment, ACTIONS(149), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(151), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2087] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(33), 1, sym_comment, ACTIONS(95), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(97), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2146] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, STATE(34), 1, sym_comment, ACTIONS(113), 21, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, ACTIONS(115), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2207] = 11, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, STATE(35), 1, sym_comment, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 16, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(115), 21, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, sym_identifier, [2278] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(36), 1, sym_comment, ACTIONS(91), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(93), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2337] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, STATE(37), 1, sym_comment, ACTIONS(113), 21, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, ACTIONS(115), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2398] = 8, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(123), 1, anon_sym_SLASH, STATE(38), 1, sym_comment, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(113), 18, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_DOT_DOT, ACTIONS(115), 22, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, sym_identifier, [2463] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(39), 1, sym_comment, ACTIONS(83), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(85), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2522] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(40), 1, sym_comment, ACTIONS(67), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(69), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2581] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(41), 1, sym_comment, ACTIONS(83), 22, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, ACTIONS(85), 23, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_then, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, anon_sym_LT, anon_sym_GT, anon_sym_or, anon_sym_and, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, sym_identifier, [2640] = 39, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(155), 1, anon_sym_end, ACTIONS(157), 1, anon_sym_elseif, ACTIONS(159), 1, anon_sym_else, STATE(42), 1, sym_comment, STATE(43), 1, aux_sym_chunk_repeat1, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(164), 1, aux_sym_if_statement_repeat1, STATE(165), 1, sym__block, STATE(190), 1, sym_return_statement, STATE(195), 1, sym_elseif_statement, STATE(242), 1, sym_else_statement, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [2767] = 33, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, STATE(43), 1, sym_comment, STATE(44), 1, aux_sym_chunk_repeat1, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(183), 1, sym_return_statement, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(161), 4, anon_sym_end, anon_sym_until, anon_sym_elseif, anon_sym_else, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [2879] = 31, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(163), 1, ts_builtin_sym_end, ACTIONS(165), 1, sym_identifier, ACTIONS(170), 1, anon_sym_SEMI, ACTIONS(173), 1, anon_sym_COLON_COLON, ACTIONS(176), 1, sym_break_statement, ACTIONS(179), 1, anon_sym_goto, ACTIONS(182), 1, anon_sym_do, ACTIONS(185), 1, anon_sym_while, ACTIONS(188), 1, anon_sym_repeat, ACTIONS(191), 1, anon_sym_if, ACTIONS(194), 1, anon_sym_for, ACTIONS(197), 1, anon_sym_function, ACTIONS(200), 1, anon_sym_local, ACTIONS(203), 1, anon_sym_LPAREN, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(44), 2, sym_comment, aux_sym_chunk_repeat1, ACTIONS(168), 5, anon_sym_return, anon_sym_end, anon_sym_until, anon_sym_elseif, anon_sym_else, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [2987] = 21, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(139), 1, anon_sym_and, ACTIONS(210), 1, anon_sym_COMMA, ACTIONS(212), 1, anon_sym_or, STATE(45), 1, sym_comment, STATE(122), 1, aux_sym__variable_assignment_explist_repeat1, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(206), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(208), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [3075] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, STATE(43), 1, aux_sym_chunk_repeat1, STATE(46), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(200), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(214), 3, anon_sym_end, anon_sym_elseif, anon_sym_else, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3189] = 19, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(139), 1, anon_sym_and, ACTIONS(212), 1, anon_sym_or, STATE(47), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(216), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(218), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [3272] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(220), 1, anon_sym_until, STATE(43), 1, aux_sym_chunk_repeat1, STATE(48), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(245), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3384] = 19, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(139), 1, anon_sym_and, ACTIONS(212), 1, anon_sym_or, STATE(49), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(222), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(224), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [3466] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(226), 1, anon_sym_end, STATE(43), 1, aux_sym_chunk_repeat1, STATE(50), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(239), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3578] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(228), 1, anon_sym_end, STATE(43), 1, aux_sym_chunk_repeat1, STATE(51), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(216), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3690] = 19, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(139), 1, anon_sym_and, ACTIONS(212), 1, anon_sym_or, STATE(52), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(230), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(232), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [3772] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(234), 1, anon_sym_end, STATE(43), 1, aux_sym_chunk_repeat1, STATE(53), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(246), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3884] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(236), 1, anon_sym_end, STATE(43), 1, aux_sym_chunk_repeat1, STATE(54), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(238), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [3996] = 34, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(153), 1, anon_sym_return, ACTIONS(238), 1, anon_sym_end, STATE(43), 1, aux_sym_chunk_repeat1, STATE(55), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(190), 1, sym_return_statement, STATE(231), 1, sym__block, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [4108] = 33, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(13), 1, anon_sym_return, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(240), 1, ts_builtin_sym_end, STATE(44), 1, aux_sym_chunk_repeat1, STATE(56), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(214), 1, sym_return_statement, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [4217] = 33, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(13), 1, anon_sym_return, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(242), 1, ts_builtin_sym_end, STATE(56), 1, aux_sym_chunk_repeat1, STATE(57), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(250), 1, sym_return_statement, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [4326] = 33, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(13), 1, anon_sym_return, ACTIONS(15), 1, anon_sym_SEMI, ACTIONS(17), 1, anon_sym_COLON_COLON, ACTIONS(19), 1, sym_break_statement, ACTIONS(21), 1, anon_sym_goto, ACTIONS(23), 1, anon_sym_do, ACTIONS(25), 1, anon_sym_while, ACTIONS(27), 1, anon_sym_repeat, ACTIONS(29), 1, anon_sym_if, ACTIONS(31), 1, anon_sym_for, ACTIONS(33), 1, anon_sym_function, ACTIONS(35), 1, anon_sym_local, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(242), 1, ts_builtin_sym_end, STATE(44), 1, aux_sym_chunk_repeat1, STATE(58), 1, sym_comment, STATE(100), 1, sym_function_call, STATE(126), 1, sym__local_function_declaration, STATE(148), 1, sym_statement, STATE(149), 1, sym_declaration, STATE(150), 1, sym_function_declaration, STATE(152), 1, sym_variable_declaration, STATE(156), 1, sym__prefix_expression, STATE(157), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(163), 1, sym_parenthesized_expression, STATE(250), 1, sym_return_statement, STATE(253), 1, sym__variable_assignment_varlist, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(131), 9, sym_empty_statement, sym_assignment_statement, sym_label_statement, sym_goto_statement, sym_do_statement, sym_while_statement, sym_repeat_statement, sym_if_statement, sym_for_statement, [4435] = 25, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(244), 1, anon_sym_SEMI, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(59), 1, sym_comment, STATE(98), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(167), 1, sym__expression_list, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, ACTIONS(246), 4, anon_sym_end, anon_sym_until, anon_sym_elseif, anon_sym_else, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4526] = 26, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(266), 1, sym_identifier, ACTIONS(268), 1, anon_sym_LBRACK, ACTIONS(270), 1, anon_sym_RBRACE, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(60), 1, sym_comment, STATE(102), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(175), 1, sym_field, STATE(251), 1, sym__field_list, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4617] = 26, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(266), 1, sym_identifier, ACTIONS(268), 1, anon_sym_LBRACK, ACTIONS(272), 1, anon_sym_RBRACE, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(61), 1, sym_comment, STATE(102), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(175), 1, sym_field, STATE(224), 1, sym__field_list, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4708] = 25, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(266), 1, sym_identifier, ACTIONS(268), 1, anon_sym_LBRACK, ACTIONS(274), 1, anon_sym_RBRACE, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(62), 1, sym_comment, STATE(102), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(208), 1, sym_field, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4796] = 25, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(244), 1, anon_sym_SEMI, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(276), 1, ts_builtin_sym_end, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(63), 1, sym_comment, STATE(98), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(167), 1, sym__expression_list, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4884] = 25, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(266), 1, sym_identifier, ACTIONS(268), 1, anon_sym_LBRACK, ACTIONS(278), 1, anon_sym_RBRACE, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(64), 1, sym_comment, STATE(102), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(208), 1, sym_field, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [4972] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(280), 1, anon_sym_EQ, STATE(65), 1, sym_comment, ACTIONS(49), 6, anon_sym_DOT, anon_sym_LT, anon_sym_GT, anon_sym_TILDE, anon_sym_DASH, anon_sym_SLASH, ACTIONS(47), 26, sym__block_string_start, anon_sym_SEMI, anon_sym_COMMA, anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_or, anon_sym_and, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, anon_sym_PIPE, anon_sym_AMP, anon_sym_LT_LT, anon_sym_GT_GT, anon_sym_PLUS, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, anon_sym_DOT_DOT, anon_sym_CARET, [5021] = 24, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(266), 1, sym_identifier, ACTIONS(268), 1, anon_sym_LBRACK, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(66), 1, sym_comment, STATE(102), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(208), 1, sym_field, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5106] = 23, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(67), 1, sym_comment, STATE(98), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, STATE(226), 1, sym__expression_list, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5188] = 23, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(45), 1, sym_expression, STATE(68), 1, sym_comment, STATE(137), 1, sym__variable_assignment_explist, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5270] = 23, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, ACTIONS(282), 1, anon_sym_RPAREN, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(69), 1, sym_comment, STATE(104), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5352] = 23, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(45), 1, sym_expression, STATE(70), 1, sym_comment, STATE(136), 1, sym__variable_assignment_explist, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5434] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(22), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(71), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5513] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(34), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(72), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5592] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(49), 1, sym_expression, STATE(73), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5671] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(74), 1, sym_comment, STATE(116), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5750] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(52), 1, sym_expression, STATE(75), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5829] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(76), 1, sym_comment, STATE(106), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5908] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(20), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(77), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [5987] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(47), 1, sym_expression, STATE(78), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6066] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(37), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(79), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6145] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(35), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(80), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6224] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(38), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(81), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6303] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(21), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(82), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6382] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(23), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(83), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6461] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(24), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(84), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6540] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(85), 1, sym_comment, STATE(101), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6619] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(86), 1, sym_comment, STATE(114), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6698] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(25), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(87), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6777] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(26), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(88), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6856] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(27), 1, sym_expression, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(89), 1, sym_comment, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [6935] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(90), 1, sym_comment, STATE(117), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7014] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(91), 1, sym_comment, STATE(99), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7093] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(92), 1, sym_comment, STATE(108), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7172] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(93), 1, sym_comment, STATE(119), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7251] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(94), 1, sym_comment, STATE(115), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7330] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(95), 1, sym_comment, STATE(111), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7409] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(96), 1, sym_comment, STATE(105), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7488] = 22, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(9), 1, sym_identifier, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(248), 1, anon_sym_function, ACTIONS(254), 1, anon_sym_DQUOTE, ACTIONS(256), 1, anon_sym_SQUOTE, ACTIONS(258), 1, anon_sym_LBRACE, ACTIONS(264), 1, sym__block_string_start, STATE(39), 1, sym__block_string, STATE(41), 1, sym__quote_string, STATE(97), 1, sym_comment, STATE(118), 1, sym_expression, STATE(156), 1, sym__prefix_expression, STATE(159), 1, sym_method_index_expression, ACTIONS(252), 2, sym_number, sym_vararg_expression, ACTIONS(260), 2, anon_sym_TILDE, anon_sym_POUND, ACTIONS(262), 2, anon_sym_DASH, anon_sym_not, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, ACTIONS(250), 3, sym_nil, sym_false, sym_true, STATE(9), 3, sym_variable, sym_function_call, sym_parenthesized_expression, STATE(40), 5, sym_string, sym_function_definition, sym_table_constructor, sym_binary_expression, sym_unary_expression, [7567] = 21, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(286), 1, anon_sym_COMMA, ACTIONS(288), 1, anon_sym_else, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, STATE(98), 1, sym_comment, STATE(162), 1, aux_sym__expression_list_repeat1, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(284), 6, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_do, anon_sym_end, anon_sym_until, anon_sym_elseif, [7643] = 19, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(296), 1, anon_sym_else, STATE(99), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, ACTIONS(294), 8, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COMMA, anon_sym_do, anon_sym_end, anon_sym_until, anon_sym_elseif, anon_sym_RPAREN, [7715] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(71), 1, anon_sym_COLON, STATE(100), 1, sym_comment, ACTIONS(298), 3, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, ACTIONS(73), 7, sym__block_string_start, anon_sym_DOT, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, ACTIONS(300), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [7759] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, STATE(101), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(302), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [7823] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, STATE(102), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(304), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [7887] = 9, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(310), 1, anon_sym_COMMA, ACTIONS(312), 1, anon_sym_LT, STATE(103), 1, sym_comment, STATE(109), 1, aux_sym__att_name_list_repeat1, STATE(110), 1, sym__attrib, ACTIONS(306), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(308), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [7933] = 20, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(286), 1, anon_sym_COMMA, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(314), 1, anon_sym_RPAREN, STATE(104), 1, sym_comment, STATE(197), 1, aux_sym__expression_list_repeat1, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8001] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, STATE(105), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(316), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8065] = 19, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(318), 1, anon_sym_COMMA, ACTIONS(320), 1, anon_sym_do, STATE(106), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8130] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(312), 1, anon_sym_LT, STATE(107), 1, sym_comment, STATE(121), 1, sym__attrib, ACTIONS(322), 6, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(324), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8171] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(326), 1, anon_sym_then, STATE(108), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8233] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(310), 1, anon_sym_COMMA, STATE(109), 1, sym_comment, STATE(113), 1, aux_sym__att_name_list_repeat1, ACTIONS(328), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(330), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8273] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(310), 1, anon_sym_COMMA, STATE(110), 1, sym_comment, STATE(112), 1, aux_sym__att_name_list_repeat1, ACTIONS(332), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(334), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8313] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(336), 1, anon_sym_RBRACK, STATE(111), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8375] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(310), 1, anon_sym_COMMA, STATE(112), 1, sym_comment, STATE(113), 1, aux_sym__att_name_list_repeat1, ACTIONS(338), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(340), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8415] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(346), 1, anon_sym_COMMA, STATE(113), 2, sym_comment, aux_sym__att_name_list_repeat1, ACTIONS(342), 5, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(344), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8453] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(349), 1, anon_sym_RBRACK, STATE(114), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8515] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(351), 1, anon_sym_RPAREN, STATE(115), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8577] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(353), 1, anon_sym_COMMA, STATE(116), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8639] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(355), 1, anon_sym_do, STATE(117), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8701] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(357), 1, anon_sym_do, STATE(118), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8763] = 18, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(111), 1, anon_sym_CARET, ACTIONS(117), 1, anon_sym_PLUS, ACTIONS(119), 1, anon_sym_DASH, ACTIONS(123), 1, anon_sym_SLASH, ACTIONS(125), 1, anon_sym_DOT_DOT, ACTIONS(129), 1, anon_sym_AMP, ACTIONS(131), 1, anon_sym_TILDE, ACTIONS(137), 1, anon_sym_PIPE, ACTIONS(290), 1, anon_sym_or, ACTIONS(292), 1, anon_sym_and, ACTIONS(359), 1, anon_sym_then, STATE(119), 1, sym_comment, ACTIONS(127), 2, anon_sym_LT_LT, anon_sym_GT_GT, ACTIONS(133), 2, anon_sym_LT, anon_sym_GT, ACTIONS(121), 3, anon_sym_STAR, anon_sym_SLASH_SLASH, anon_sym_PERCENT, ACTIONS(135), 4, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_TILDE_EQ, anon_sym_GT_EQ, [8825] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(365), 1, anon_sym_COMMA, STATE(120), 2, sym_comment, aux_sym__variable_assignment_explist_repeat1, ACTIONS(361), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(363), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8862] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(121), 1, sym_comment, ACTIONS(368), 6, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(370), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8897] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(210), 1, anon_sym_COMMA, STATE(120), 1, aux_sym__variable_assignment_explist_repeat1, STATE(122), 1, sym_comment, ACTIONS(372), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(374), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8936] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(123), 1, sym_comment, ACTIONS(376), 6, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_EQ, anon_sym_COMMA, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(378), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [8971] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(384), 1, anon_sym_EQ, STATE(124), 1, sym_comment, ACTIONS(380), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(382), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9007] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(125), 1, sym_comment, ACTIONS(386), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(388), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9040] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(126), 1, sym_comment, ACTIONS(390), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(392), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9073] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(127), 1, sym_comment, ACTIONS(394), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(396), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9106] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(128), 1, sym_comment, ACTIONS(398), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(400), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9139] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(129), 1, sym_comment, ACTIONS(402), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(404), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9172] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(130), 1, sym_comment, ACTIONS(406), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(408), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9205] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(131), 1, sym_comment, ACTIONS(298), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(300), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9238] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(132), 1, sym_comment, ACTIONS(410), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(412), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9271] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(133), 1, sym_comment, ACTIONS(414), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(416), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9304] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(134), 1, sym_comment, ACTIONS(418), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(420), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9337] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(135), 1, sym_comment, ACTIONS(422), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(424), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9370] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(136), 1, sym_comment, ACTIONS(426), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(428), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9403] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(137), 1, sym_comment, ACTIONS(430), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(432), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9436] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(138), 1, sym_comment, ACTIONS(434), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(436), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9469] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(139), 1, sym_comment, ACTIONS(438), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(440), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9502] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(140), 1, sym_comment, ACTIONS(442), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(444), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9535] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(141), 1, sym_comment, ACTIONS(446), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(448), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9568] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(142), 1, sym_comment, ACTIONS(450), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(452), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9601] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(143), 1, sym_comment, ACTIONS(454), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(456), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9634] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(144), 1, sym_comment, ACTIONS(458), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(460), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9667] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(145), 1, sym_comment, ACTIONS(462), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(464), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9700] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(146), 1, sym_comment, ACTIONS(466), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(468), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9733] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(147), 1, sym_comment, ACTIONS(470), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(472), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9766] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(148), 1, sym_comment, ACTIONS(474), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(476), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9799] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(149), 1, sym_comment, ACTIONS(478), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(480), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9832] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(150), 1, sym_comment, ACTIONS(482), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(484), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9865] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(151), 1, sym_comment, ACTIONS(486), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(488), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9898] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(152), 1, sym_comment, ACTIONS(490), 4, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(492), 15, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_until, anon_sym_if, anon_sym_elseif, anon_sym_else, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9931] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(153), 1, sym_comment, ACTIONS(494), 7, anon_sym_function, sym_nil, sym_false, sym_true, anon_sym_DASH, anon_sym_not, sym_identifier, ACTIONS(496), 11, sym__block_string_start, sym_number, anon_sym_DQUOTE, anon_sym_SQUOTE, sym_vararg_expression, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, anon_sym_RBRACE, anon_sym_TILDE, anon_sym_POUND, [9963] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(154), 1, sym_comment, ACTIONS(500), 3, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(498), 12, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_if, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [9992] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(155), 1, sym_comment, ACTIONS(504), 3, anon_sym_SEMI, anon_sym_COLON_COLON, anon_sym_LPAREN, ACTIONS(502), 12, anon_sym_return, sym_break_statement, anon_sym_goto, anon_sym_do, anon_sym_end, anon_sym_while, anon_sym_repeat, anon_sym_if, anon_sym_for, anon_sym_function, anon_sym_local, sym_identifier, [10021] = 15, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(506), 1, anon_sym_DOT, ACTIONS(508), 1, anon_sym_COLON, ACTIONS(510), 1, anon_sym_DQUOTE, ACTIONS(512), 1, anon_sym_SQUOTE, ACTIONS(514), 1, anon_sym_LPAREN, ACTIONS(516), 1, anon_sym_LBRACK, ACTIONS(518), 1, anon_sym_LBRACE, ACTIONS(520), 1, sym__block_string_start, STATE(7), 1, sym_arguments, STATE(12), 1, sym__quote_string, STATE(14), 1, sym__block_string, STATE(156), 1, sym_comment, STATE(8), 2, sym_string, sym_table_constructor, [10068] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(522), 1, anon_sym_EQ, ACTIONS(524), 1, anon_sym_COMMA, STATE(157), 1, sym_comment, STATE(204), 1, aux_sym__variable_assignment_varlist_repeat1, ACTIONS(73), 8, sym__block_string_start, anon_sym_DOT, anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, [10097] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(158), 1, sym_comment, ACTIONS(526), 2, anon_sym_EQ, anon_sym_COMMA, ACTIONS(73), 8, sym__block_string_start, anon_sym_DOT, anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, [10121] = 12, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(510), 1, anon_sym_DQUOTE, ACTIONS(512), 1, anon_sym_SQUOTE, ACTIONS(514), 1, anon_sym_LPAREN, ACTIONS(518), 1, anon_sym_LBRACE, ACTIONS(520), 1, sym__block_string_start, STATE(7), 1, sym_arguments, STATE(12), 1, sym__quote_string, STATE(14), 1, sym__block_string, STATE(159), 1, sym_comment, STATE(8), 2, sym_string, sym_table_constructor, [10159] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(296), 1, anon_sym_else, ACTIONS(528), 1, anon_sym_COMMA, STATE(160), 2, sym_comment, aux_sym__expression_list_repeat1, ACTIONS(294), 7, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_do, anon_sym_end, anon_sym_until, anon_sym_elseif, anon_sym_RPAREN, [10185] = 10, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(37), 1, anon_sym_LPAREN, ACTIONS(531), 1, sym_identifier, STATE(156), 1, sym__prefix_expression, STATE(158), 1, sym_variable, STATE(159), 1, sym_method_index_expression, STATE(161), 1, sym_comment, STATE(4), 2, sym_bracket_index_expression, sym_dot_index_expression, STATE(163), 2, sym_function_call, sym_parenthesized_expression, [10218] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(286), 1, anon_sym_COMMA, ACTIONS(535), 1, anon_sym_else, STATE(160), 1, aux_sym__expression_list_repeat1, STATE(162), 1, sym_comment, ACTIONS(533), 6, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_do, anon_sym_end, anon_sym_until, anon_sym_elseif, [10245] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(163), 1, sym_comment, ACTIONS(73), 8, sym__block_string_start, anon_sym_DOT, anon_sym_COLON, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACK, anon_sym_LBRACE, [10265] = 9, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(159), 1, anon_sym_else, ACTIONS(537), 1, anon_sym_end, ACTIONS(539), 1, anon_sym_elseif, STATE(164), 1, sym_comment, STATE(173), 1, aux_sym_if_statement_repeat1, STATE(195), 1, sym_elseif_statement, STATE(222), 1, sym_else_statement, [10293] = 9, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(159), 1, anon_sym_else, ACTIONS(539), 1, anon_sym_elseif, ACTIONS(541), 1, anon_sym_end, STATE(165), 1, sym_comment, STATE(166), 1, aux_sym_if_statement_repeat1, STATE(195), 1, sym_elseif_statement, STATE(218), 1, sym_else_statement, [10321] = 9, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(159), 1, anon_sym_else, ACTIONS(539), 1, anon_sym_elseif, ACTIONS(543), 1, anon_sym_end, STATE(166), 1, sym_comment, STATE(173), 1, aux_sym_if_statement_repeat1, STATE(195), 1, sym_elseif_statement, STATE(215), 1, sym_else_statement, [10349] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(547), 1, anon_sym_SEMI, ACTIONS(549), 1, anon_sym_else, STATE(167), 1, sym_comment, ACTIONS(545), 4, ts_builtin_sym_end, anon_sym_end, anon_sym_until, anon_sym_elseif, [10371] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(554), 1, anon_sym_RBRACE, STATE(66), 1, sym__field_sep, ACTIONS(551), 2, anon_sym_SEMI, anon_sym_COMMA, STATE(168), 2, sym_comment, aux_sym__field_list_repeat1, [10392] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(169), 1, sym_comment, ACTIONS(556), 5, sym__block_string_start, anon_sym_DQUOTE, anon_sym_SQUOTE, anon_sym_LPAREN, anon_sym_LBRACE, [10409] = 8, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(558), 1, sym_identifier, STATE(170), 1, sym_comment, STATE(193), 1, sym__function_name_prefix_expression, STATE(202), 1, sym__function_name, STATE(203), 1, sym__function_name_dot_index_expression, STATE(236), 1, sym__function_name_method_index_expression, [10434] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(278), 1, anon_sym_RBRACE, STATE(62), 1, sym__field_sep, STATE(168), 1, aux_sym__field_list_repeat1, STATE(171), 1, sym_comment, ACTIONS(560), 2, anon_sym_SEMI, anon_sym_COMMA, [10457] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(549), 1, anon_sym_else, STATE(172), 1, sym_comment, ACTIONS(545), 4, ts_builtin_sym_end, anon_sym_end, anon_sym_until, anon_sym_elseif, [10476] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(562), 1, anon_sym_end, ACTIONS(564), 1, anon_sym_elseif, ACTIONS(567), 1, anon_sym_else, STATE(195), 1, sym_elseif_statement, STATE(173), 2, sym_comment, aux_sym_if_statement_repeat1, [10499] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(571), 1, anon_sym_else, STATE(174), 1, sym_comment, ACTIONS(569), 4, ts_builtin_sym_end, anon_sym_end, anon_sym_until, anon_sym_elseif, [10518] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(573), 1, anon_sym_RBRACE, STATE(64), 1, sym__field_sep, STATE(171), 1, aux_sym__field_list_repeat1, STATE(175), 1, sym_comment, ACTIONS(560), 2, anon_sym_SEMI, anon_sym_COMMA, [10541] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(575), 1, anon_sym_DQUOTE, ACTIONS(579), 1, anon_sym_DASH_DASH, STATE(176), 1, sym_comment, STATE(189), 1, aux_sym__doublequote_string_content, ACTIONS(577), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, [10561] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(581), 1, anon_sym_COMMA, ACTIONS(584), 2, anon_sym_in, anon_sym_RPAREN, STATE(177), 2, sym_comment, aux_sym__name_list_repeat1, [10579] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(586), 1, sym_identifier, ACTIONS(588), 1, sym_vararg_expression, ACTIONS(590), 1, anon_sym_RPAREN, STATE(178), 1, sym_comment, STATE(248), 1, sym__parameter_list, [10601] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(592), 1, anon_sym_DQUOTE, STATE(176), 1, aux_sym__doublequote_string_content, STATE(179), 1, sym_comment, ACTIONS(577), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, [10621] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(594), 1, anon_sym_SQUOTE, STATE(180), 1, sym_comment, STATE(192), 1, aux_sym__singlequote_string_content, ACTIONS(596), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, [10641] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(575), 1, anon_sym_SQUOTE, ACTIONS(579), 1, anon_sym_DASH_DASH, STATE(181), 1, sym_comment, STATE(192), 1, aux_sym__singlequote_string_content, ACTIONS(596), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, [10661] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(592), 1, anon_sym_SQUOTE, STATE(181), 1, aux_sym__singlequote_string_content, STATE(182), 1, sym_comment, ACTIONS(596), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, [10681] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(600), 1, anon_sym_else, STATE(183), 1, sym_comment, ACTIONS(598), 3, anon_sym_end, anon_sym_until, anon_sym_elseif, [10699] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(602), 1, sym_identifier, STATE(184), 1, sym_comment, STATE(243), 1, sym__name_list, STATE(244), 2, sym_for_generic_clause, sym_for_numeric_clause, [10719] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(604), 1, sym_identifier, ACTIONS(606), 1, anon_sym_function, STATE(124), 1, sym__att_name_list, STATE(139), 1, sym__local_variable_assignment, STATE(185), 1, sym_comment, [10741] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(608), 1, anon_sym_SQUOTE, STATE(180), 1, aux_sym__singlequote_string_content, STATE(186), 1, sym_comment, ACTIONS(596), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, [10761] = 7, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(610), 1, anon_sym_EQ, ACTIONS(612), 1, anon_sym_COMMA, ACTIONS(614), 1, anon_sym_in, STATE(187), 1, sym_comment, STATE(210), 1, aux_sym__name_list_repeat1, [10783] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(608), 1, anon_sym_DQUOTE, STATE(188), 1, sym_comment, STATE(191), 1, aux_sym__doublequote_string_content, ACTIONS(577), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, [10803] = 5, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(616), 1, anon_sym_DQUOTE, ACTIONS(618), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, STATE(189), 2, aux_sym__doublequote_string_content, sym_comment, [10821] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(161), 1, anon_sym_else, STATE(190), 1, sym_comment, ACTIONS(621), 3, anon_sym_end, anon_sym_until, anon_sym_elseif, [10839] = 6, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(594), 1, anon_sym_DQUOTE, STATE(189), 1, aux_sym__doublequote_string_content, STATE(191), 1, sym_comment, ACTIONS(577), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, [10859] = 5, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(623), 1, anon_sym_SQUOTE, ACTIONS(625), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, STATE(192), 2, aux_sym__singlequote_string_content, sym_comment, [10877] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(628), 1, anon_sym_DOT, ACTIONS(630), 1, anon_sym_COLON, ACTIONS(632), 1, anon_sym_LPAREN, STATE(193), 1, sym_comment, [10896] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(634), 1, anon_sym_LPAREN, STATE(54), 1, sym_parameters, STATE(140), 1, sym__function_body, STATE(194), 1, sym_comment, [10915] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(638), 1, anon_sym_else, STATE(195), 1, sym_comment, ACTIONS(636), 2, anon_sym_end, anon_sym_elseif, [10932] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(196), 1, sym_comment, ACTIONS(640), 3, anon_sym_COMMA, anon_sym_in, anon_sym_RPAREN, [10947] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(286), 1, anon_sym_COMMA, ACTIONS(642), 1, anon_sym_RPAREN, STATE(160), 1, aux_sym__expression_list_repeat1, STATE(197), 1, sym_comment, [10966] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(644), 1, anon_sym_COMMA, ACTIONS(646), 1, anon_sym_RPAREN, STATE(177), 1, aux_sym__name_list_repeat1, STATE(198), 1, sym_comment, [10985] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(634), 1, anon_sym_LPAREN, STATE(32), 1, sym__function_body, STATE(54), 1, sym_parameters, STATE(199), 1, sym_comment, [11004] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(650), 1, anon_sym_else, STATE(200), 1, sym_comment, ACTIONS(648), 2, anon_sym_end, anon_sym_elseif, [11021] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(201), 1, sym_comment, ACTIONS(652), 3, anon_sym_DOT, anon_sym_COLON, anon_sym_LPAREN, [11036] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(634), 1, anon_sym_LPAREN, STATE(54), 1, sym_parameters, STATE(127), 1, sym__function_body, STATE(202), 1, sym_comment, [11055] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(203), 1, sym_comment, ACTIONS(654), 3, anon_sym_DOT, anon_sym_COLON, anon_sym_LPAREN, [11070] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(524), 1, anon_sym_COMMA, ACTIONS(656), 1, anon_sym_EQ, STATE(204), 1, sym_comment, STATE(211), 1, aux_sym__variable_assignment_varlist_repeat1, [11089] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(658), 1, anon_sym_COMMA, ACTIONS(660), 1, anon_sym_RPAREN, STATE(198), 1, aux_sym__name_list_repeat1, STATE(205), 1, sym_comment, [11108] = 5, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(662), 1, anon_sym_DQUOTE, STATE(206), 1, sym_comment, ACTIONS(664), 2, aux_sym__doublequote_string_content_token1, sym_escape_sequence, [11125] = 5, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(666), 1, anon_sym_SQUOTE, STATE(207), 1, sym_comment, ACTIONS(668), 2, aux_sym__singlequote_string_content_token1, sym_escape_sequence, [11142] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(208), 1, sym_comment, ACTIONS(554), 3, anon_sym_SEMI, anon_sym_COMMA, anon_sym_RBRACE, [11157] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, STATE(209), 1, sym_comment, ACTIONS(670), 3, anon_sym_DOT, anon_sym_COLON, anon_sym_LPAREN, [11172] = 6, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(612), 1, anon_sym_COMMA, ACTIONS(672), 1, anon_sym_in, STATE(177), 1, aux_sym__name_list_repeat1, STATE(210), 1, sym_comment, [11191] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(674), 1, anon_sym_EQ, ACTIONS(676), 1, anon_sym_COMMA, STATE(211), 2, sym_comment, aux_sym__variable_assignment_varlist_repeat1, [11208] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(679), 1, sym_identifier, ACTIONS(681), 1, sym_vararg_expression, STATE(212), 1, sym_comment, [11224] = 5, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(679), 1, sym_identifier, ACTIONS(683), 1, sym_vararg_expression, STATE(213), 1, sym_comment, [11240] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(685), 1, ts_builtin_sym_end, STATE(214), 1, sym_comment, [11253] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(687), 1, anon_sym_end, STATE(215), 1, sym_comment, [11266] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(689), 1, anon_sym_end, STATE(216), 1, sym_comment, [11279] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(691), 1, sym_identifier, STATE(217), 1, sym_comment, [11292] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(693), 1, anon_sym_end, STATE(218), 1, sym_comment, [11305] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(695), 1, sym__block_comment_content, STATE(219), 1, sym_comment, [11318] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(697), 1, sym_identifier, STATE(220), 1, sym_comment, [11331] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(699), 1, sym_identifier, STATE(221), 1, sym_comment, [11344] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(701), 1, anon_sym_end, STATE(222), 1, sym_comment, [11357] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(679), 1, sym_identifier, STATE(223), 1, sym_comment, [11370] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(703), 1, anon_sym_RBRACE, STATE(224), 1, sym_comment, [11383] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(705), 1, anon_sym_GT, STATE(225), 1, sym_comment, [11396] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(707), 1, anon_sym_do, STATE(226), 1, sym_comment, [11409] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(709), 1, sym__block_string_end, STATE(227), 1, sym_comment, [11422] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(711), 1, anon_sym_EQ, STATE(228), 1, sym_comment, [11435] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(713), 1, sym__block_string_content, STATE(229), 1, sym_comment, [11448] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(715), 1, anon_sym_RPAREN, STATE(230), 1, sym_comment, [11461] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(717), 1, anon_sym_end, STATE(231), 1, sym_comment, [11474] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(719), 1, anon_sym_RPAREN, STATE(232), 1, sym_comment, [11487] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(721), 1, sym_identifier, STATE(233), 1, sym_comment, [11500] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(723), 1, sym_identifier, STATE(234), 1, sym_comment, [11513] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(725), 1, sym_identifier, STATE(235), 1, sym_comment, [11526] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(727), 1, anon_sym_LPAREN, STATE(236), 1, sym_comment, [11539] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(729), 1, anon_sym_LPAREN, STATE(237), 1, sym_comment, [11552] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(731), 1, anon_sym_end, STATE(238), 1, sym_comment, [11565] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(733), 1, anon_sym_end, STATE(239), 1, sym_comment, [11578] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(735), 1, anon_sym_RPAREN, STATE(240), 1, sym_comment, [11591] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(737), 1, sym_identifier, STATE(241), 1, sym_comment, [11604] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(739), 1, anon_sym_end, STATE(242), 1, sym_comment, [11617] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(741), 1, anon_sym_in, STATE(243), 1, sym_comment, [11630] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(743), 1, anon_sym_do, STATE(244), 1, sym_comment, [11643] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(745), 1, anon_sym_until, STATE(245), 1, sym_comment, [11656] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(747), 1, anon_sym_end, STATE(246), 1, sym_comment, [11669] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(749), 1, anon_sym_COLON_COLON, STATE(247), 1, sym_comment, [11682] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(751), 1, anon_sym_RPAREN, STATE(248), 1, sym_comment, [11695] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(753), 1, sym__block_string_content, STATE(249), 1, sym_comment, [11708] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(240), 1, ts_builtin_sym_end, STATE(250), 1, sym_comment, [11721] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(755), 1, anon_sym_RBRACE, STATE(251), 1, sym_comment, [11734] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(757), 1, sym__block_comment_end, STATE(252), 1, sym_comment, [11747] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(759), 1, anon_sym_EQ, STATE(253), 1, sym_comment, [11760] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(242), 1, ts_builtin_sym_end, STATE(254), 1, sym_comment, [11773] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(761), 1, ts_builtin_sym_end, STATE(255), 1, sym_comment, [11786] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(763), 1, sym_identifier, STATE(256), 1, sym_comment, [11799] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(765), 1, sym__block_string_end, STATE(257), 1, sym_comment, [11812] = 4, ACTIONS(3), 1, anon_sym_DASH_DASH, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(767), 1, sym_identifier, STATE(258), 1, sym_comment, [11825] = 4, ACTIONS(5), 1, sym__block_comment_start, ACTIONS(579), 1, anon_sym_DASH_DASH, ACTIONS(769), 1, aux_sym_comment_token1, STATE(259), 1, sym_comment, [11838] = 1, ACTIONS(771), 1, ts_builtin_sym_end, [11842] = 1, ACTIONS(773), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, [SMALL_STATE(3)] = 67, [SMALL_STATE(4)] = 134, [SMALL_STATE(5)] = 201, [SMALL_STATE(6)] = 267, [SMALL_STATE(7)] = 333, [SMALL_STATE(8)] = 399, [SMALL_STATE(9)] = 465, [SMALL_STATE(10)] = 535, [SMALL_STATE(11)] = 601, [SMALL_STATE(12)] = 667, [SMALL_STATE(13)] = 733, [SMALL_STATE(14)] = 799, [SMALL_STATE(15)] = 865, [SMALL_STATE(16)] = 931, [SMALL_STATE(17)] = 997, [SMALL_STATE(18)] = 1063, [SMALL_STATE(19)] = 1129, [SMALL_STATE(20)] = 1188, [SMALL_STATE(21)] = 1249, [SMALL_STATE(22)] = 1320, [SMALL_STATE(23)] = 1393, [SMALL_STATE(24)] = 1468, [SMALL_STATE(25)] = 1545, [SMALL_STATE(26)] = 1628, [SMALL_STATE(27)] = 1713, [SMALL_STATE(28)] = 1792, [SMALL_STATE(29)] = 1851, [SMALL_STATE(30)] = 1910, [SMALL_STATE(31)] = 1969, [SMALL_STATE(32)] = 2028, [SMALL_STATE(33)] = 2087, [SMALL_STATE(34)] = 2146, [SMALL_STATE(35)] = 2207, [SMALL_STATE(36)] = 2278, [SMALL_STATE(37)] = 2337, [SMALL_STATE(38)] = 2398, [SMALL_STATE(39)] = 2463, [SMALL_STATE(40)] = 2522, [SMALL_STATE(41)] = 2581, [SMALL_STATE(42)] = 2640, [SMALL_STATE(43)] = 2767, [SMALL_STATE(44)] = 2879, [SMALL_STATE(45)] = 2987, [SMALL_STATE(46)] = 3075, [SMALL_STATE(47)] = 3189, [SMALL_STATE(48)] = 3272, [SMALL_STATE(49)] = 3384, [SMALL_STATE(50)] = 3466, [SMALL_STATE(51)] = 3578, [SMALL_STATE(52)] = 3690, [SMALL_STATE(53)] = 3772, [SMALL_STATE(54)] = 3884, [SMALL_STATE(55)] = 3996, [SMALL_STATE(56)] = 4108, [SMALL_STATE(57)] = 4217, [SMALL_STATE(58)] = 4326, [SMALL_STATE(59)] = 4435, [SMALL_STATE(60)] = 4526, [SMALL_STATE(61)] = 4617, [SMALL_STATE(62)] = 4708, [SMALL_STATE(63)] = 4796, [SMALL_STATE(64)] = 4884, [SMALL_STATE(65)] = 4972, [SMALL_STATE(66)] = 5021, [SMALL_STATE(67)] = 5106, [SMALL_STATE(68)] = 5188, [SMALL_STATE(69)] = 5270, [SMALL_STATE(70)] = 5352, [SMALL_STATE(71)] = 5434, [SMALL_STATE(72)] = 5513, [SMALL_STATE(73)] = 5592, [SMALL_STATE(74)] = 5671, [SMALL_STATE(75)] = 5750, [SMALL_STATE(76)] = 5829, [SMALL_STATE(77)] = 5908, [SMALL_STATE(78)] = 5987, [SMALL_STATE(79)] = 6066, [SMALL_STATE(80)] = 6145, [SMALL_STATE(81)] = 6224, [SMALL_STATE(82)] = 6303, [SMALL_STATE(83)] = 6382, [SMALL_STATE(84)] = 6461, [SMALL_STATE(85)] = 6540, [SMALL_STATE(86)] = 6619, [SMALL_STATE(87)] = 6698, [SMALL_STATE(88)] = 6777, [SMALL_STATE(89)] = 6856, [SMALL_STATE(90)] = 6935, [SMALL_STATE(91)] = 7014, [SMALL_STATE(92)] = 7093, [SMALL_STATE(93)] = 7172, [SMALL_STATE(94)] = 7251, [SMALL_STATE(95)] = 7330, [SMALL_STATE(96)] = 7409, [SMALL_STATE(97)] = 7488, [SMALL_STATE(98)] = 7567, [SMALL_STATE(99)] = 7643, [SMALL_STATE(100)] = 7715, [SMALL_STATE(101)] = 7759, [SMALL_STATE(102)] = 7823, [SMALL_STATE(103)] = 7887, [SMALL_STATE(104)] = 7933, [SMALL_STATE(105)] = 8001, [SMALL_STATE(106)] = 8065, [SMALL_STATE(107)] = 8130, [SMALL_STATE(108)] = 8171, [SMALL_STATE(109)] = 8233, [SMALL_STATE(110)] = 8273, [SMALL_STATE(111)] = 8313, [SMALL_STATE(112)] = 8375, [SMALL_STATE(113)] = 8415, [SMALL_STATE(114)] = 8453, [SMALL_STATE(115)] = 8515, [SMALL_STATE(116)] = 8577, [SMALL_STATE(117)] = 8639, [SMALL_STATE(118)] = 8701, [SMALL_STATE(119)] = 8763, [SMALL_STATE(120)] = 8825, [SMALL_STATE(121)] = 8862, [SMALL_STATE(122)] = 8897, [SMALL_STATE(123)] = 8936, [SMALL_STATE(124)] = 8971, [SMALL_STATE(125)] = 9007, [SMALL_STATE(126)] = 9040, [SMALL_STATE(127)] = 9073, [SMALL_STATE(128)] = 9106, [SMALL_STATE(129)] = 9139, [SMALL_STATE(130)] = 9172, [SMALL_STATE(131)] = 9205, [SMALL_STATE(132)] = 9238, [SMALL_STATE(133)] = 9271, [SMALL_STATE(134)] = 9304, [SMALL_STATE(135)] = 9337, [SMALL_STATE(136)] = 9370, [SMALL_STATE(137)] = 9403, [SMALL_STATE(138)] = 9436, [SMALL_STATE(139)] = 9469, [SMALL_STATE(140)] = 9502, [SMALL_STATE(141)] = 9535, [SMALL_STATE(142)] = 9568, [SMALL_STATE(143)] = 9601, [SMALL_STATE(144)] = 9634, [SMALL_STATE(145)] = 9667, [SMALL_STATE(146)] = 9700, [SMALL_STATE(147)] = 9733, [SMALL_STATE(148)] = 9766, [SMALL_STATE(149)] = 9799, [SMALL_STATE(150)] = 9832, [SMALL_STATE(151)] = 9865, [SMALL_STATE(152)] = 9898, [SMALL_STATE(153)] = 9931, [SMALL_STATE(154)] = 9963, [SMALL_STATE(155)] = 9992, [SMALL_STATE(156)] = 10021, [SMALL_STATE(157)] = 10068, [SMALL_STATE(158)] = 10097, [SMALL_STATE(159)] = 10121, [SMALL_STATE(160)] = 10159, [SMALL_STATE(161)] = 10185, [SMALL_STATE(162)] = 10218, [SMALL_STATE(163)] = 10245, [SMALL_STATE(164)] = 10265, [SMALL_STATE(165)] = 10293, [SMALL_STATE(166)] = 10321, [SMALL_STATE(167)] = 10349, [SMALL_STATE(168)] = 10371, [SMALL_STATE(169)] = 10392, [SMALL_STATE(170)] = 10409, [SMALL_STATE(171)] = 10434, [SMALL_STATE(172)] = 10457, [SMALL_STATE(173)] = 10476, [SMALL_STATE(174)] = 10499, [SMALL_STATE(175)] = 10518, [SMALL_STATE(176)] = 10541, [SMALL_STATE(177)] = 10561, [SMALL_STATE(178)] = 10579, [SMALL_STATE(179)] = 10601, [SMALL_STATE(180)] = 10621, [SMALL_STATE(181)] = 10641, [SMALL_STATE(182)] = 10661, [SMALL_STATE(183)] = 10681, [SMALL_STATE(184)] = 10699, [SMALL_STATE(185)] = 10719, [SMALL_STATE(186)] = 10741, [SMALL_STATE(187)] = 10761, [SMALL_STATE(188)] = 10783, [SMALL_STATE(189)] = 10803, [SMALL_STATE(190)] = 10821, [SMALL_STATE(191)] = 10839, [SMALL_STATE(192)] = 10859, [SMALL_STATE(193)] = 10877, [SMALL_STATE(194)] = 10896, [SMALL_STATE(195)] = 10915, [SMALL_STATE(196)] = 10932, [SMALL_STATE(197)] = 10947, [SMALL_STATE(198)] = 10966, [SMALL_STATE(199)] = 10985, [SMALL_STATE(200)] = 11004, [SMALL_STATE(201)] = 11021, [SMALL_STATE(202)] = 11036, [SMALL_STATE(203)] = 11055, [SMALL_STATE(204)] = 11070, [SMALL_STATE(205)] = 11089, [SMALL_STATE(206)] = 11108, [SMALL_STATE(207)] = 11125, [SMALL_STATE(208)] = 11142, [SMALL_STATE(209)] = 11157, [SMALL_STATE(210)] = 11172, [SMALL_STATE(211)] = 11191, [SMALL_STATE(212)] = 11208, [SMALL_STATE(213)] = 11224, [SMALL_STATE(214)] = 11240, [SMALL_STATE(215)] = 11253, [SMALL_STATE(216)] = 11266, [SMALL_STATE(217)] = 11279, [SMALL_STATE(218)] = 11292, [SMALL_STATE(219)] = 11305, [SMALL_STATE(220)] = 11318, [SMALL_STATE(221)] = 11331, [SMALL_STATE(222)] = 11344, [SMALL_STATE(223)] = 11357, [SMALL_STATE(224)] = 11370, [SMALL_STATE(225)] = 11383, [SMALL_STATE(226)] = 11396, [SMALL_STATE(227)] = 11409, [SMALL_STATE(228)] = 11422, [SMALL_STATE(229)] = 11435, [SMALL_STATE(230)] = 11448, [SMALL_STATE(231)] = 11461, [SMALL_STATE(232)] = 11474, [SMALL_STATE(233)] = 11487, [SMALL_STATE(234)] = 11500, [SMALL_STATE(235)] = 11513, [SMALL_STATE(236)] = 11526, [SMALL_STATE(237)] = 11539, [SMALL_STATE(238)] = 11552, [SMALL_STATE(239)] = 11565, [SMALL_STATE(240)] = 11578, [SMALL_STATE(241)] = 11591, [SMALL_STATE(242)] = 11604, [SMALL_STATE(243)] = 11617, [SMALL_STATE(244)] = 11630, [SMALL_STATE(245)] = 11643, [SMALL_STATE(246)] = 11656, [SMALL_STATE(247)] = 11669, [SMALL_STATE(248)] = 11682, [SMALL_STATE(249)] = 11695, [SMALL_STATE(250)] = 11708, [SMALL_STATE(251)] = 11721, [SMALL_STATE(252)] = 11734, [SMALL_STATE(253)] = 11747, [SMALL_STATE(254)] = 11760, [SMALL_STATE(255)] = 11773, [SMALL_STATE(256)] = 11786, [SMALL_STATE(257)] = 11799, [SMALL_STATE(258)] = 11812, [SMALL_STATE(259)] = 11825, [SMALL_STATE(260)] = 11838, [SMALL_STATE(261)] = 11842, }; 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(259), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), [7] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 0, 0, 0), [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(4), [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63), [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), [17] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53), [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(48), [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93), [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170), [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185), [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bracket_index_expression, 4, 0, 23), [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bracket_index_expression, 4, 0, 23), [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, 0, 23), [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, 0, 23), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1, 0, 0), [49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1, 0, 0), [51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 3, 0, 28), [53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 3, 0, 28), [55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4, 0, 0), [57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4, 0, 0), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, 0, 10), [61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, 0, 10), [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 1, 0, 0), [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 1, 0, 0), [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), [71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__prefix_expression, 1, 0, 0), [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__prefix_expression, 1, 0, 0), [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3, 0, 0), [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3, 0, 0), [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 6), [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 6), [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2, 0, 0), [89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2, 0, 0), [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 2, 0, 14), [93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 2, 0, 14), [95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 2, 0, 0), [97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 2, 0, 0), [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block_string, 3, 0, 12), [101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block_string, 3, 0, 12), [103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 3, 0, 0), [105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 3, 0, 0), [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 16), [109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 16), [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 29), [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 29), [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81), [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72), [125] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), [131] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83), [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(89), [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(87), [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 3, 0, 41), [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 3, 0, 41), [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 2, 0, 27), [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 2, 0, 27), [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 2, 0, 13), [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 2, 0, 13), [153] = {.entry = {.count = 1, .reusable = false}}, SHIFT(59), [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), [157] = {.entry = {.count = 1, .reusable = false}}, SHIFT(92), [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(51), [161] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 1, 0, 0), [163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(4), [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), [170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(129), [173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(258), [176] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(131), [179] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(256), [182] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(53), [185] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(90), [188] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(48), [191] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(93), [194] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(184), [197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(170), [200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(185), [203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2, 0, 0), SHIFT_REPEAT(94), [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 1, 0, 15), [208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 1, 0, 15), [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), [212] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), [214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 3, 0, 30), [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, 0, 50), [218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, 0, 50), [220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73), [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, 0, 18), [224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, 0, 18), [226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_statement, 1, 0, 0), [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 4, 0, 31), [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 4, 0, 31), [234] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), [236] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), [238] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 2, 0, 0), [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 1, 0, 0), [244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 1, 0, 0), [248] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), [250] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), [262] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), [266] = {.entry = {.count = 1, .reusable = false}}, SHIFT(65), [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 3, 0, 0), [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2, 0, 0), [280] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 1, 0, 0), [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), [288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 1, 0, 0), [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2, 0, 0), [296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list_repeat1, 2, 0, 0), [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, 0, 0), [300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, 0, 0), [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 5, 0, 56), [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, 0, 15), [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 1, 0, 4), [308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 1, 0, 4), [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, 0, 42), [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 5, 0, 55), [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, 0, 25), [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, 0, 25), [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, 0, 21), [330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, 0, 21), [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, 0, 20), [334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, 0, 20), [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 3, 0, 36), [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 3, 0, 36), [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, 0, 37), [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, 0, 37), [346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, 0, 37), SHIFT_REPEAT(217), [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 7, 0, 58), [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), [361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, 0, 51), [363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, 0, 51), [365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, 0, 51), SHIFT_REPEAT(78), [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 3, 0, 49), [370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 3, 0, 49), [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 2, 0, 39), [374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 2, 0, 39), [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attrib, 3, 0, 0), [378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attrib, 3, 0, 0), [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, 0, 9), [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, 0, 9), [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 45), [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 45), [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, 0, 2), [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, 0, 2), [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 3, 0, 19), [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 3, 0, 19), [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 57), [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 57), [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1, 0, 0), [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1, 0, 0), [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 44), [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 44), [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 54), [412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 54), [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 2, 0, 0), [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 2, 0, 0), [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 2, 0, 0), [420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 2, 0, 0), [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 53), [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 53), [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_statement, 3, 0, 22), [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_statement, 3, 0, 22), [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_variable_assignment, 3, 0, 38), [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_variable_assignment, 3, 0, 38), [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 52), [436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 52), [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, 0, 0), [440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, 0, 0), [442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_function_declaration, 4, 0, 35), [444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_function_declaration, 4, 0, 35), [446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 3, 0, 17), [448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 3, 0, 17), [450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_statement, 3, 0, 0), [452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_statement, 3, 0, 0), [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 4, 0, 33), [456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 4, 0, 33), [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, 0, 48), [460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, 0, 48), [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 30), [464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 30), [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 30), [468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 30), [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 43), [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 43), [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 1, 0, 0), [476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 1, 0, 0), [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, 0, 1), [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, 0, 1), [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, 0, 0), [484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, 0, 0), [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 46), [488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 46), [490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, 0, 3), [492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, 0, 3), [494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_sep, 1, 0, 0), [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_sep, 1, 0, 0), [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, 0, 40), [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 40), [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2, 0, 0), [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 1, 0, 4), [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, 0, 25), [528] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2, 0, 0), SHIFT_REPEAT(91), [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), [533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 2, 0, 0), [535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 2, 0, 0), [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), [545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), [549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2, 0, 0), [551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2, 0, 0), SHIFT_REPEAT(153), [554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2, 0, 0), [556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_index_expression, 3, 0, 24), [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 47), [564] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 47), SHIFT_REPEAT(92), [567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 47), [569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3, 0, 0), [571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3, 0, 0), [573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1, 0, 0), [575] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), [577] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), [579] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259), [581] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, 0, 26), SHIFT_REPEAT(223), [584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, 0, 26), [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), [594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 2, 0, 0), [600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 2, 0, 0), [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), [604] = {.entry = {.count = 1, .reusable = false}}, SHIFT(103), [606] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), [608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), [612] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 1, 0, 4), [616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 2, 0, 0), [618] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 2, 0, 0), SHIFT_REPEAT(206), [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 1, 0, 0), [623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 2, 0, 0), [625] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 2, 0, 0), SHIFT_REPEAT(207), [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), [632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1, 0, 0), [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), [636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 32), [638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 32), [640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, 0, 25), [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), [644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), [646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 2, 0, 11), [648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif_statement, 4, 0, 44), [650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 4, 0, 44), [652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, 0, 0), [654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, 0, 7), [656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 2, 0, 11), [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), [660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, 0, 4), [662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 1, 0, 0), [664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 1, 0, 0), [666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 1, 0, 0), [668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 1, 0, 0), [670] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_dot_index_expression, 3, 0, 23), [672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 2, 0, 11), [674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, 0, 26), [676] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, 0, 26), SHIFT_REPEAT(161), [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), [685] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 3, 0, 0), [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), [689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_statement, 2, 0, 17), [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), [707] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_generic_clause, 3, 0, 34), [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), [715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 3, 0, 4), [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), [719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, 0, 0), [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), [727] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1, 0, 8), [729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_method_index_expression, 3, 0, 24), [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), [735] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 4, 0, 11), [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), [761] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), [769] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 2, 0, 5), [773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, 0, 12), }; enum ts_external_scanner_symbol_identifiers { ts_external_token__block_comment_start = 0, ts_external_token__block_comment_content = 1, ts_external_token__block_comment_end = 2, ts_external_token__block_string_start = 3, ts_external_token__block_string_content = 4, ts_external_token__block_string_end = 5, }; static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { [ts_external_token__block_comment_start] = sym__block_comment_start, [ts_external_token__block_comment_content] = sym__block_comment_content, [ts_external_token__block_comment_end] = sym__block_comment_end, [ts_external_token__block_string_start] = sym__block_string_start, [ts_external_token__block_string_content] = sym__block_string_content, [ts_external_token__block_string_end] = sym__block_string_end, }; static const bool ts_external_scanner_states[8][EXTERNAL_TOKEN_COUNT] = { [1] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_comment_content] = true, [ts_external_token__block_comment_end] = true, [ts_external_token__block_string_start] = true, [ts_external_token__block_string_content] = true, [ts_external_token__block_string_end] = true, }, [2] = { [ts_external_token__block_comment_start] = true, }, [3] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_string_start] = true, }, [4] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_comment_content] = true, }, [5] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_string_end] = true, }, [6] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_string_content] = true, }, [7] = { [ts_external_token__block_comment_start] = true, [ts_external_token__block_comment_end] = true, }, }; #ifdef __cplusplus extern "C" { #endif void *tree_sitter_lua_external_scanner_create(void); void tree_sitter_lua_external_scanner_destroy(void *); bool tree_sitter_lua_external_scanner_scan(void *, TSLexer *, const bool *); unsigned tree_sitter_lua_external_scanner_serialize(void *, char *); void tree_sitter_lua_external_scanner_deserialize(void *, const char *, unsigned); #ifdef TREE_SITTER_HIDE_SYMBOLS #define TS_PUBLIC #elif defined(_WIN32) #define TS_PUBLIC __declspec(dllexport) #else #define TS_PUBLIC __attribute__((visibility("default"))) #endif TS_PUBLIC const TSLanguage *tree_sitter_lua(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, .external_token_count = EXTERNAL_TOKEN_COUNT, .state_count = STATE_COUNT, .large_state_count = LARGE_STATE_COUNT, .production_id_count = PRODUCTION_ID_COUNT, .field_count = FIELD_COUNT, .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH, .parse_table = &ts_parse_table[0][0], .small_parse_table = ts_small_parse_table, .small_parse_table_map = ts_small_parse_table_map, .parse_actions = ts_parse_actions, .symbol_names = ts_symbol_names, .field_names = ts_field_names, .field_map_slices = ts_field_map_slices, .field_map_entries = ts_field_map_entries, .symbol_metadata = ts_symbol_metadata, .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], .lex_modes = ts_lex_modes, .lex_fn = ts_lex, .keyword_lex_fn = ts_lex_keywords, .keyword_capture_token = sym_identifier, .external_scanner = { &ts_external_scanner_states[0][0], ts_external_scanner_symbol_map, tree_sitter_lua_external_scanner_create, tree_sitter_lua_external_scanner_destroy, tree_sitter_lua_external_scanner_scan, tree_sitter_lua_external_scanner_serialize, tree_sitter_lua_external_scanner_deserialize, }, .primary_state_ids = ts_primary_state_ids, }; return &language; } #ifdef __cplusplus } #endif 0707010000003C000081A400000000000000000000000166DF0FCB000011AA000000000000000000000000000000000000002400000000tree-sitter-lua-0.2.0/src/scanner.c#include <stdio.h> #include "tree_sitter/parser.h" #include <wctype.h> enum TokenType { BLOCK_COMMENT_START, BLOCK_COMMENT_CONTENT, BLOCK_COMMENT_END, BLOCK_STRING_START, BLOCK_STRING_CONTENT, BLOCK_STRING_END, }; static inline void consume(TSLexer *lexer) { lexer->advance(lexer, false); } static inline void skip(TSLexer *lexer) { lexer->advance(lexer, true); } static inline bool consume_char(char c, TSLexer *lexer) { if (lexer->lookahead != c) { return false; } consume(lexer); return true; } static inline uint8_t consume_and_count_char(char c, TSLexer *lexer) { uint8_t count = 0; while (lexer->lookahead == c) { ++count; consume(lexer); } return count; } static inline void skip_whitespaces(TSLexer *lexer) { while (iswspace(lexer->lookahead)) { skip(lexer); } } typedef struct { char ending_char; uint8_t level_count; } Scanner; static inline void reset_state(Scanner *scanner) { scanner->ending_char = 0; scanner->level_count = 0; } void *tree_sitter_lua_external_scanner_create() { Scanner *scanner = calloc(1, sizeof(Scanner)); return scanner; } void tree_sitter_lua_external_scanner_destroy(void *payload) { Scanner *scanner = (Scanner *)payload; free(scanner); } unsigned tree_sitter_lua_external_scanner_serialize(void *payload, char *buffer) { Scanner *scanner = (Scanner *)payload; buffer[0] = scanner->ending_char; buffer[1] = (char)scanner->level_count; return 2; } void tree_sitter_lua_external_scanner_deserialize(void *payload, const char *buffer, unsigned length) { Scanner *scanner = (Scanner *)payload; if (length == 0) return; scanner->ending_char = buffer[0]; if (length == 1) return; scanner->level_count = buffer[1]; } static bool scan_block_start(Scanner *scanner, TSLexer *lexer) { if (consume_char('[', lexer)) { uint8_t level = consume_and_count_char('=', lexer); if (consume_char('[', lexer)) { scanner->level_count = level; return true; } } return false; } static bool scan_block_end(Scanner *scanner, TSLexer *lexer) { if (consume_char(']', lexer)) { uint8_t level = consume_and_count_char('=', lexer); if (scanner->level_count == level && consume_char(']', lexer)) { return true; } } return false; } static bool scan_block_content(Scanner *scanner, TSLexer *lexer) { while (lexer->lookahead != 0) { if (lexer->lookahead == ']') { lexer->mark_end(lexer); if (scan_block_end(scanner, lexer)) { return true; } } else { consume(lexer); } } return false; } static bool scan_comment_start(Scanner *scanner, TSLexer *lexer) { if (consume_char('-', lexer) && consume_char('-', lexer)) { lexer->mark_end(lexer); if (scan_block_start(scanner, lexer)) { lexer->mark_end(lexer); lexer->result_symbol = BLOCK_COMMENT_START; return true; } } return false; } static bool scan_comment_content(Scanner *scanner, TSLexer *lexer) { if (scanner->ending_char == 0) { // block comment if (scan_block_content(scanner, lexer)) { lexer->result_symbol = BLOCK_COMMENT_CONTENT; return true; } return false; } while (lexer->lookahead != 0) { if (lexer->lookahead == scanner->ending_char) { reset_state(scanner); lexer->result_symbol = BLOCK_COMMENT_CONTENT; return true; } consume(lexer); } return false; } bool tree_sitter_lua_external_scanner_scan(void *payload, TSLexer *lexer, const bool *valid_symbols) { Scanner *scanner = (Scanner *)payload; if (valid_symbols[BLOCK_STRING_END] && scan_block_end(scanner, lexer)) { reset_state(scanner); lexer->result_symbol = BLOCK_STRING_END; return true; } if (valid_symbols[BLOCK_STRING_CONTENT] && scan_block_content(scanner, lexer)) { lexer->result_symbol = BLOCK_STRING_CONTENT; return true; } if (valid_symbols[BLOCK_COMMENT_END] && scanner->ending_char == 0 && scan_block_end(scanner, lexer)) { reset_state(scanner); lexer->result_symbol = BLOCK_COMMENT_END; return true; } if (valid_symbols[BLOCK_COMMENT_CONTENT] && scan_comment_content(scanner, lexer)) { return true; } skip_whitespaces(lexer); if (valid_symbols[BLOCK_STRING_START] && scan_block_start(scanner, lexer)) { lexer->result_symbol = BLOCK_STRING_START; return true; } if (valid_symbols[BLOCK_COMMENT_START]) { if (scan_comment_start(scanner, lexer)) { return true; } } return false; } 0707010000003D000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002600000000tree-sitter-lua-0.2.0/src/tree_sitter0707010000003E000081A400000000000000000000000166DF0FCB000003BE000000000000000000000000000000000000002E00000000tree-sitter-lua-0.2.0/src/tree_sitter/alloc.h#ifndef TREE_SITTER_ALLOC_H_ #define TREE_SITTER_ALLOC_H_ #ifdef __cplusplus extern "C" { #endif #include <stdbool.h> #include <stdio.h> #include <stdlib.h> // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR extern void *(*ts_current_malloc)(size_t); extern void *(*ts_current_calloc)(size_t, size_t); extern void *(*ts_current_realloc)(void *, size_t); extern void (*ts_current_free)(void *); #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_ 0707010000003F000081A400000000000000000000000166DF0FCB000028B4000000000000000000000000000000000000002E00000000tree-sitter-lua-0.2.0/src/tree_sitter/array.h#ifndef TREE_SITTER_ARRAY_H_ #define TREE_SITTER_ARRAY_H_ #ifdef __cplusplus extern "C" { #endif #include "./alloc.h" #include <assert.h> #include <stdbool.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #ifdef _MSC_VER #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(default : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif #ifdef __cplusplus } #endif #endif // TREE_SITTER_ARRAY_H_ 07070100000040000081A400000000000000000000000166DF0FCB00001B7F000000000000000000000000000000000000002F00000000tree-sitter-lua-0.2.0/src/tree_sitter/parser.h#ifndef TREE_SITTER_PARSER_H_ #define TREE_SITTER_PARSER_H_ #ifdef __cplusplus extern "C" { #endif #include <stdbool.h> #include <stdint.h> #include <stdlib.h> #define ts_builtin_sym_error ((TSSymbol)-1) #define ts_builtin_sym_end 0 #define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 #ifndef TREE_SITTER_API_H_ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; #endif typedef struct { TSFieldId field_id; uint8_t child_index; bool inherited; } TSFieldMapEntry; typedef struct { uint16_t index; uint16_t length; } TSFieldMapSlice; typedef struct { bool visible; bool named; bool supertype; } TSSymbolMetadata; typedef struct TSLexer TSLexer; struct TSLexer { int32_t lookahead; TSSymbol result_symbol; void (*advance)(TSLexer *, bool); void (*mark_end)(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 { TSParseActionTypeShift, TSParseActionTypeReduce, TSParseActionTypeAccept, TSParseActionTypeRecover, } TSParseActionType; typedef union { struct { uint8_t type; TSStateId state; bool extra; bool repetition; } shift; struct { uint8_t type; uint8_t child_count; TSSymbol symbol; int16_t dynamic_precedence; uint16_t production_id; } reduce; uint8_t type; } TSParseAction; typedef struct { uint16_t lex_state; uint16_t external_lex_state; } TSLexMode; typedef union { TSParseAction action; struct { uint8_t count; bool reusable; } entry; } TSParseActionEntry; typedef struct { int32_t start; int32_t end; } TSCharacterRange; struct TSLanguage { uint32_t version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; uint32_t external_token_count; uint32_t state_count; uint32_t large_state_count; uint32_t production_id_count; uint32_t field_count; uint16_t max_alias_sequence_length; const uint16_t *parse_table; const uint16_t *small_parse_table; const uint32_t *small_parse_table_map; const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; const TSFieldMapSlice *field_map_slices; const TSFieldMapEntry *field_map_entries; const TSSymbolMetadata *symbol_metadata; const TSSymbol *public_symbol_map; const uint16_t *alias_map; const TSSymbol *alias_sequences; const TSLexMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; struct { const bool *states; const TSSymbol *symbol_map; void *(*create)(void); void (*destroy)(void *); bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist); unsigned (*serialize)(void *, char *); void (*deserialize)(void *, const char *, unsigned); } external_scanner; 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; \ next_state: \ lexer->advance(lexer, skip); \ start: \ skip = false; \ lookahead = lexer->lookahead; #define ADVANCE(state_value) \ { \ state = state_value; \ 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; \ state = state_value; \ goto next_state; \ } #define ACCEPT_TOKEN(symbol_value) \ result = true; \ lexer->result_symbol = symbol_value; \ lexer->mark_end(lexer); #define END_STATE() return result; /* * Parse Table Macros */ #define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) #define STATE(id) id #define ACTIONS(id) id #define SHIFT(state_value) \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .state = (state_value) \ } \ }} #define SHIFT_REPEAT(state_value) \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .state = (state_value), \ .repetition = true \ } \ }} #define SHIFT_EXTRA() \ {{ \ .shift = { \ .type = TSParseActionTypeShift, \ .extra = true \ } \ }} #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() \ {{ \ .type = TSParseActionTypeRecover \ }} #define ACCEPT_INPUT() \ {{ \ .type = TSParseActionTypeAccept \ }} #ifdef __cplusplus } #endif #endif // TREE_SITTER_PARSER_H_ 07070100000041000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000001B00000000tree-sitter-lua-0.2.0/test07070100000042000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002200000000tree-sitter-lua-0.2.0/test/corpus07070100000043000081A400000000000000000000000166DF0FCB000004D5000000000000000000000000000000000000002C00000000tree-sitter-lua-0.2.0/test/corpus/chunk.txt================================================================================ chunk ================================================================================ -------------------------------------------------------------------------------- (chunk) ================================================================================ hash_bang_line ================================================================================ #!/usr/bin/env lua -------------------------------------------------------------------------------- (chunk (hash_bang_line)) ================================================================================ hash_bang_line: ignored first line ================================================================================ # ignored first line -------------------------------------------------------------------------------- (chunk (hash_bang_line)) ================================================================================ return_statement ================================================================================ return 42 -------------------------------------------------------------------------------- (chunk (return_statement (expression_list (number)))) 07070100000044000081A400000000000000000000000166DF0FCB00000716000000000000000000000000000000000000002F00000000tree-sitter-lua-0.2.0/test/corpus/comments.txt================================================================================ comment ================================================================================ -- -- single-line comment, below an empty single-line comment --[[]] --[[ print("block comment") --]] --[[ print("block comment") ]] -- [[ print("not block comment") --]] --[=[[print("level 1 block comment")]]=] --[=[ [print("level 1 block comment")] ]=] --[=[ [print("level 1 block comment") ]=] --[=[ print("level 1 block comment")] ]=] --[=[ [[print("level 1 block comment") ]=] --[=[ print("level 1 block comment")]] ]=] --[==[ print("level 2 block comment") -- ]==] --[==[ print("level 2 block comment") ]==] -- [==[ print("not level 2 block comment") --]==] -------------------------------------------------------------------------------- (chunk (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (function_call name: (identifier) arguments: (arguments (string content: (string_content)))) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (comment content: (comment_content)) (function_call name: (identifier) arguments: (arguments (string content: (string_content)))) (comment content: (comment_content))) 07070100000045000081A400000000000000000000000166DF0FCB00003ED1000000000000000000000000000000000000003200000000tree-sitter-lua-0.2.0/test/corpus/expressions.txt================================================================================ nil ================================================================================ exp(nil) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (nil)))) ================================================================================ false ================================================================================ exp(false) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (false)))) ================================================================================ true ================================================================================ exp(true) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (true)))) ================================================================================ number ================================================================================ exp( 3, 345, 0xff, 0xBEBADA, .0, 3., 3.0, 3.1416, 314.16e-2, 0.31416E1, 34e1, 0x0.1E, 0xA23p-4, 0x.0p-3, 0x.FfffFFFF, 0X1.921FB54442D18P+1, 42LL, 0x2aULL, 12.5i, 0x.01p-1I ) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number) (number)))) ================================================================================ string ================================================================================ exp( "string", 'string', "c", 'c', "0", [[ string ]], [[ string string ]], [=[ string string ]=], [=[[string]]=], [=[ [string] ]=], [=[ [string ]=], [=[ string] ]=], [=[ [[string ]=], [=[ string]] ]=] ) -------------------------------------------------------------------------------- (chunk (function_call (identifier) (arguments (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content)) (string (string_content))))) ================================================================================ string :: escape_sequence ================================================================================ exp( "a\ b", 'a\z', 'a\z ', 'a\z b', "'a\z\ b'" ) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (string content: (string_content (escape_sequence))) (string content: (string_content (escape_sequence))) (string content: (string_content (escape_sequence))) (string content: (string_content (escape_sequence))) (string content: (string_content (escape_sequence) (escape_sequence)))))) ================================================================================ vararg_expression ================================================================================ exp(...) -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments (vararg_expression)))) ================================================================================ function_definition ================================================================================ f1 = function() end f2 = function() return end f3 = function(...) return ... end f4 = function(a1, ...) print(...) return a1 end -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_definition parameters: (parameters)))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_definition parameters: (parameters) body: (block (return_statement))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_definition parameters: (parameters (vararg_expression)) body: (block (return_statement (expression_list (vararg_expression))))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_definition parameters: (parameters name: (identifier) (vararg_expression)) body: (block (function_call name: (identifier) arguments: (arguments (vararg_expression))) (return_statement (expression_list (identifier)))))))) ================================================================================ variable ::: identifier ================================================================================ v1 = n1 v2, v3 = n2, n3 পাই = π 🙂 = 🙃 -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (identifier))) (assignment_statement (variable_list name: (identifier) name: (identifier)) (expression_list value: (identifier) value: (identifier))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (identifier))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (identifier)))) ================================================================================ variable ::: bracket_index_expression ================================================================================ v1 = tbl[k1] v2, v3[v] = tbl[k1]["k2"] v4 = tbk[getK1()][getK2()] -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (bracket_index_expression table: (identifier) field: (identifier)))) (assignment_statement (variable_list name: (identifier) name: (bracket_index_expression table: (identifier) field: (identifier))) (expression_list value: (bracket_index_expression table: (bracket_index_expression table: (identifier) field: (identifier)) field: (string content: (string_content))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (bracket_index_expression table: (bracket_index_expression table: (identifier) field: (function_call name: (identifier) arguments: (arguments))) field: (function_call name: (identifier) arguments: (arguments)))))) ================================================================================ variable ::: dot_index_expression ================================================================================ v1 = tbl.k1 v2 = tbl.k1.k2 -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (dot_index_expression table: (identifier) field: (identifier)))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (dot_index_expression table: (dot_index_expression table: (identifier) field: (identifier)) field: (identifier))))) ================================================================================ function_call ::: bracket_index_expression | dot_index_expression ================================================================================ v1 = tbl[k1].k2(a1, "a2", a3()) v2 = tbl[k1] { f1 = true } v3 = tbl[k1] "a1" -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_call name: (dot_index_expression table: (bracket_index_expression table: (identifier) field: (identifier)) field: (identifier)) arguments: (arguments (identifier) (string content: (string_content)) (function_call name: (identifier) arguments: (arguments)))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_call name: (bracket_index_expression table: (identifier) field: (identifier)) arguments: (arguments (table_constructor (field name: (identifier) value: (true))))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (function_call name: (bracket_index_expression table: (identifier) field: (identifier)) arguments: (arguments (string content: (string_content))))))) ================================================================================ function_call ::: method_index_expression ================================================================================ tbl.k1:m1(a1, "a2") tbl[k1]:m1 { f1, "f2" } tbl:m1 "a1" -------------------------------------------------------------------------------- (chunk (function_call name: (method_index_expression table: (dot_index_expression table: (identifier) field: (identifier)) method: (identifier)) arguments: (arguments (identifier) (string content: (string_content)))) (function_call name: (method_index_expression table: (bracket_index_expression table: (identifier) field: (identifier)) method: (identifier)) arguments: (arguments (table_constructor (field value: (identifier)) (field value: (string content: (string_content)))))) (function_call name: (method_index_expression table: (identifier) method: (identifier)) arguments: (arguments (string content: (string_content))))) ================================================================================ parenthesized_expression ================================================================================ v = ( true ) v = ( ( false ) ) -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (parenthesized_expression (true)))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (parenthesized_expression (parenthesized_expression (false)))))) ================================================================================ table_constructor ================================================================================ tbl1 = { ["k1"] = { ['k2'] = true, k3 = false } } local tbl2 = { k1 = { { 'v1', "v2" } } } local tbl3 = { "v1", k1 = "v2" } -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (table_constructor (field name: (string content: (string_content)) value: (table_constructor (field name: (string content: (string_content)) value: (true)) (field name: (identifier) value: (false))))))) local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier)) (expression_list value: (table_constructor (field name: (identifier) value: (table_constructor (field value: (table_constructor (field value: (string content: (string_content))) (field value: (string content: (string_content))))))))))) local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier)) (expression_list value: (table_constructor (field value: (string content: (string_content))) (field name: (identifier) value: (string content: (string_content)))))))) ================================================================================ binary_expression ================================================================================ a = i + j * 3 - k % 5 b = i + j % 3 ^ 2 c = i * 2 ^ j -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number))) right: (binary_expression left: (identifier) right: (number))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (number) right: (number)))))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (identifier) right: (binary_expression left: (number) right: (identifier)))))) ================================================================================ unary_expression ================================================================================ v1 = #l v2 = -n v3 = not c1 and r1 or r2 -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (unary_expression operand: (identifier)))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (unary_expression operand: (identifier)))) (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (binary_expression left: (unary_expression operand: (identifier)) right: (identifier)) right: (identifier))))) 07070100000046000081A400000000000000000000000166DF0FCB00003233000000000000000000000000000000000000003100000000tree-sitter-lua-0.2.0/test/corpus/statements.txt================================================================================ empty_statement ================================================================================ ; ;; -------------------------------------------------------------------------------- (chunk (empty_statement) (empty_statement) (empty_statement)) ================================================================================ assignment_statement ================================================================================ i = 1 j, tbl[k()] = 2, i + 1 x, y = y, x -------------------------------------------------------------------------------- (chunk (assignment_statement (variable_list name: (identifier)) (expression_list value: (number))) (assignment_statement (variable_list name: (identifier) name: (bracket_index_expression table: (identifier) field: (function_call name: (identifier) arguments: (arguments)))) (expression_list value: (number) value: (binary_expression left: (identifier) right: (number)))) (assignment_statement (variable_list name: (identifier) name: (identifier)) (expression_list value: (identifier) value: (identifier)))) ================================================================================ function_call ================================================================================ f1() tbl.f2() tbl["f2"]() tbl.k1:f3() f4(a1)("a2") { a3 = "a3" } -------------------------------------------------------------------------------- (chunk (function_call name: (identifier) arguments: (arguments)) (function_call name: (dot_index_expression table: (identifier) field: (identifier)) arguments: (arguments)) (function_call name: (bracket_index_expression table: (identifier) field: (string content: (string_content))) arguments: (arguments)) (function_call name: (method_index_expression table: (dot_index_expression table: (identifier) field: (identifier)) method: (identifier)) arguments: (arguments)) (function_call name: (function_call name: (function_call name: (identifier) arguments: (arguments (identifier))) arguments: (arguments (string content: (string_content)))) arguments: (arguments (table_constructor (field name: (identifier) value: (string content: (string_content))))))) ================================================================================ label_statement ================================================================================ :: label_name :: -------------------------------------------------------------------------------- (chunk (label_statement (identifier))) ================================================================================ break_statement ================================================================================ for k, v in pairs(kv) do if not v then break end end -------------------------------------------------------------------------------- (chunk (for_statement clause: (for_generic_clause (variable_list name: (identifier) name: (identifier)) (expression_list (function_call name: (identifier) arguments: (arguments (identifier))))) body: (block (if_statement condition: (unary_expression operand: (identifier)) consequence: (block (break_statement)))))) ================================================================================ goto_statement ================================================================================ goto label_name -------------------------------------------------------------------------------- (chunk (goto_statement (identifier))) ================================================================================ do_statement ================================================================================ do f1() return f2() end do end -------------------------------------------------------------------------------- (chunk (do_statement body: (block (function_call name: (identifier) arguments: (arguments)) (return_statement (expression_list (function_call name: (identifier) arguments: (arguments)))))) (do_statement)) ================================================================================ while_statement ================================================================================ while i < 9 do i = i + 1 end while false do end -------------------------------------------------------------------------------- (chunk (while_statement condition: (binary_expression left: (identifier) right: (number)) body: (block (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (identifier) right: (number)))))) (while_statement condition: (false))) ================================================================================ repeat_statement ================================================================================ repeat f1() i = i - 1 until i == 0 repeat until false -------------------------------------------------------------------------------- (chunk (repeat_statement body: (block (function_call name: (identifier) arguments: (arguments)) (assignment_statement (variable_list name: (identifier)) (expression_list value: (binary_expression left: (identifier) right: (number))))) condition: (binary_expression left: (identifier) right: (number))) (repeat_statement condition: (false))) ================================================================================ if_statement ================================================================================ if num % 2 == 0 then print("even") elseif num % 2 ~= 0 then print("odd") else error("!") end if c1 then end if c1 then else end if c1 then elseif c2 then else end -------------------------------------------------------------------------------- (chunk (if_statement condition: (binary_expression left: (binary_expression left: (identifier) right: (number)) right: (number)) consequence: (block (function_call name: (identifier) arguments: (arguments (string content: (string_content))))) alternative: (elseif_statement condition: (binary_expression left: (binary_expression left: (identifier) right: (number)) right: (number)) consequence: (block (function_call name: (identifier) arguments: (arguments (string content: (string_content)))))) alternative: (else_statement body: (block (function_call name: (identifier) arguments: (arguments (string content: (string_content))))))) (if_statement condition: (identifier)) (if_statement condition: (identifier) alternative: (else_statement)) (if_statement condition: (identifier) alternative: (elseif_statement condition: (identifier)) alternative: (else_statement))) ================================================================================ for_statement ::: for_generic_clause ================================================================================ for k, v in pairs(kv) do print(k, v) end for i in ipairs(iv) do end -------------------------------------------------------------------------------- (chunk (for_statement clause: (for_generic_clause (variable_list name: (identifier) name: (identifier)) (expression_list (function_call name: (identifier) arguments: (arguments (identifier))))) body: (block (function_call name: (identifier) arguments: (arguments (identifier) (identifier))))) (for_statement clause: (for_generic_clause (variable_list name: (identifier)) (expression_list (function_call name: (identifier) arguments: (arguments (identifier))))))) ================================================================================ for_statement ::: for_numeric_clause ================================================================================ for n = 1, 10 do print(n) end for n = 1, 10, 2 do end -------------------------------------------------------------------------------- (chunk (for_statement clause: (for_numeric_clause name: (identifier) start: (number) end: (number)) body: (block (function_call name: (identifier) arguments: (arguments (identifier))))) (for_statement clause: (for_numeric_clause name: (identifier) start: (number) end: (number) step: (number)))) ================================================================================ function_declaration ================================================================================ function tbl.f1() end function tbl:f2() end function tbl.k1:f3() end function f4() print('f4') end local function f5() end -------------------------------------------------------------------------------- (chunk (function_declaration name: (dot_index_expression table: (identifier) field: (identifier)) parameters: (parameters)) (function_declaration name: (method_index_expression table: (identifier) method: (identifier)) parameters: (parameters)) (function_declaration name: (method_index_expression table: (dot_index_expression table: (identifier) field: (identifier)) method: (identifier)) parameters: (parameters)) (function_declaration name: (identifier) parameters: (parameters) body: (block (function_call name: (identifier) arguments: (arguments (string content: (string_content)))))) local_declaration: (function_declaration name: (identifier) parameters: (parameters))) ================================================================================ variable_declaration ================================================================================ local v1 = 1 local v2, v3 = 2, 3 local v4, v4 = f1(), tbl:f2() -------------------------------------------------------------------------------- (chunk local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier)) (expression_list value: (number)))) local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier) name: (identifier)) (expression_list value: (number) value: (number)))) local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier) name: (identifier)) (expression_list value: (function_call name: (identifier) arguments: (arguments)) value: (function_call name: (method_index_expression table: (identifier) method: (identifier)) arguments: (arguments)))))) ================================================================================ variable_declaration ::: attribute [Lua 5.4] ================================================================================ local c <const>, x <const> = 42 local f <close> = io.open('/file.lua') -------------------------------------------------------------------------------- (chunk local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier) attribute: (attribute (identifier)) name: (identifier) attribute: (attribute (identifier))) (expression_list value: (number)))) local_declaration: (variable_declaration (assignment_statement (variable_list name: (identifier) attribute: (attribute (identifier))) (expression_list value: (function_call name: (dot_index_expression table: (identifier) field: (identifier)) arguments: (arguments (string content: (string_content)))))))) 07070100000047000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002500000000tree-sitter-lua-0.2.0/test/highlight07070100000048000081A400000000000000000000000166DF0FCB000002FF000000000000000000000000000000000000003000000000tree-sitter-lua-0.2.0/test/highlight/string.lua-- stylua: ignore start local _ _ = "x" -- ^ string _ = 'x' -- ^ string _ = "x\ty" -- ^ string -- ^ string.escape -- ^ string.escape -- ^ string _ = "x\"y" -- ^ string -- ^ string.escape -- ^ string.escape -- ^ string _ = 'x\'y' -- ^ string -- ^ string.escape -- ^ string.escape -- ^ string _ = "x\z y" -- ^ string --<- string.escape _ = "x\x5Ay" -- ^ string.escape -- ^ string.escape _ = "x\0900y" -- ^ string.escape -- ^ string _ = "x\09y" -- ^ string.escape -- ^ string _ = "x\0y" -- ^ string.escape -- ^ string _ = "x\u{1f602}y" -- ^ string.escape -- ^ string.escape -- ^ string _ = [[x]] -- ^ string _ = [=[x]=] -- ^ string 07070100000049000041ED00000000000000000000000266DF0FCB00000000000000000000000000000000000000000000002000000000tree-sitter-lua-0.2.0/test/tags0707010000004A000081A400000000000000000000000166DF0FCB0000025D000000000000000000000000000000000000002E00000000tree-sitter-lua-0.2.0/test/tags/functions.lualocal function func_one() end -- ^ definition.function func_one() -- ^ reference.call local func_two = function() end -- ^ definition.function func_two() -- ^ reference.call local tbl = { func_one = function() end, -- ^ definition.function } tbl.func_one() -- ^ reference.call function tbl.func_two() end -- ^ definition.function tbl.func_two() -- ^ reference.call function tbl:func_three() end -- ^ definition.method tbl:func_three() -- ^ reference.call tbl.func_four = function() end -- ^ definition.function tbl.func_four() -- ^ reference.call 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!1083 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor