File tree-sitter-lua-0.1.0.obscpio of Package tree-sitter-lua
07070100000000000081A400000000000000000000000165EED19C000001F6000000000000000000000000000000000000002400000000tree-sitter-lua-0.1.0/.editorconfigroot = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.{json,toml,yml,gyp}]
indent_style = space
indent_size = 2
[*.js]
indent_style = space
indent_size = 2
[*.rs]
indent_style = space
indent_size = 4
[*.{c,cc,h}]
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
07070100000001000081A400000000000000000000000165EED19C0000010A000000000000000000000000000000000000002500000000tree-sitter-lua-0.1.0/.gitattributes* text 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
07070100000002000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000001E00000000tree-sitter-lua-0.1.0/.github07070100000003000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002800000000tree-sitter-lua-0.1.0/.github/workflows07070100000004000081A400000000000000000000000165EED19C00000B4D000000000000000000000000000000000000002F00000000tree-sitter-lua-0.1.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: Set up repository
uses: tree-sitter/parser-setup-action@v1.1
with:
node-version: ${{vars.NODE_VERSION}}
- 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: Run tests
uses: tree-sitter/parser-test-action@v1.2
with:
test-library: ${{runner.os == 'Linux'}}
corpus-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'
07070100000005000081A400000000000000000000000165EED19C0000019F000000000000000000000000000000000000003400000000tree-sitter-lua-0.1.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}}
07070100000006000081A400000000000000000000000165EED19C00000139000000000000000000000000000000000000002100000000tree-sitter-lua-0.1.0/.gitignore# Rust artifacts
Cargo.lock
target/
# Node artifacts
build/
node_modules/
*.tgz
# Swift artifacts
.build/
# Go artifacts
go.sum
_obj/
# Python artifacts
.venv/
dist/
*.egg-info
*.whl
# C artifacts
*.a
*.so
*.so.*
*.dylib
*.dll
*.pc
# Example dirs
/examples/*/
# Grammar volatiles
dsl.d.ts
*.wasm
*.obj
*.o
07070100000007000081A400000000000000000000000165EED19C0000000F000000000000000000000000000000000000002600000000tree-sitter-lua-0.1.0/.prettierignorebindings/
src/
07070100000008000081A400000000000000000000000165EED19C0000001A000000000000000000000000000000000000002700000000tree-sitter-lua-0.1.0/.prettierrc.json{
"singleQuote": true
}
07070100000009000081A400000000000000000000000165EED19C00000262000000000000000000000000000000000000002100000000tree-sitter-lua-0.1.0/Cargo.toml[package]
name = "tree-sitter-lua"
description = "Lua grammar for tree-sitter"
version = "0.1.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 = ">=0.21.0"
[build-dependencies]
cc = "^1.0.89"
0707010000000A000081A400000000000000000000000165EED19C00000437000000000000000000000000000000000000002100000000tree-sitter-lua-0.1.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.
0707010000000B000081A400000000000000000000000165EED19C00000D8B000000000000000000000000000000000000001F00000000tree-sitter-lua-0.1.0/MakefileVERSION := 0.1.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
# ABI versioning
SONAME_MAJOR := $(word 1,$(subst ., ,$(VERSION)))
SONAME_MINOR := $(word 2,$(subst ., ,$(VERSION)))
# install directory layout
PREFIX ?= /usr/local
INCLUDEDIR ?= $(PREFIX)/include
LIBDIR ?= $(PREFIX)/lib
PCLIBDIR ?= $(LIBDIR)/pkgconfig
# object files
OBJS := $(patsubst %.c,%.o,$(wildcard $(SRC_DIR)/*.c))
# flags
ARFLAGS := rcs
override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC
# OS-specific bits
ifeq ($(OS),Windows_NT)
$(error "Windows is not supported")
else ifeq ($(shell uname),Darwin)
SOEXT = dylib
SOEXTVER_MAJOR = $(SONAME_MAJOR).dylib
SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).dylib
LINKSHARED := $(LINKSHARED)-dynamiclib -Wl,
ifneq ($(ADDITIONAL_LIBS),)
LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS),
endif
LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SONAME_MAJOR).dylib,-rpath,@executable_path/../Frameworks
else
SOEXT = so
SOEXTVER_MAJOR = so.$(SONAME_MAJOR)
SOEXTVER = so.$(SONAME_MAJOR).$(SONAME_MINOR)
LINKSHARED := $(LINKSHARED)-shared -Wl,
ifneq ($(ADDITIONAL_LIBS),)
LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS)
endif
LINKSHARED := $(LINKSHARED)-soname,lib$(LANGUAGE_NAME).so.$(SONAME_MAJOR)
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)|' $< > $@
$(SRC_DIR)/parser.c: grammar.js
$(TS) generate --no-bindings
install: all
install -Dm644 bindings/c/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h
install -Dm644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc
install -Dm755 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
0707010000000C000081A400000000000000000000000165EED19C000005DE000000000000000000000000000000000000002400000000tree-sitter-lua-0.1.0/Package.swift// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "TreeSitterLua",
platforms: [.macOS(.v10_13), .iOS(.v11)],
products: [
.library(name: "TreeSitterLua", targets: ["TreeSitterLua"]),
],
dependencies: [],
targets: [
.target(name: "TreeSitterLua",
path: ".",
exclude: [
"Cargo.toml",
"Makefile",
"binding.gyp",
"bindings/c",
"bindings/go",
"bindings/node",
"bindings/python",
"bindings/rust",
"prebuilds",
"node_modules",
"grammar.js",
"package.json",
"package-lock.json",
"pyproject.toml",
"setup.py",
"test",
"types",
"examples",
".editorconfig",
".github",
".gitignore",
".gitattributes",
],
sources: [
"src/parser.c",
"src/scanner.c",
],
resources: [
.copy("queries")
],
publicHeadersPath: "bindings/swift",
cSettings: [.headerSearchPath("src")])
],
cLanguageStandard: .c11
)
0707010000000D000081A400000000000000000000000165EED19C000004D3000000000000000000000000000000000000002000000000tree-sitter-lua-0.1.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
0707010000000E000081A400000000000000000000000165EED19C00000199000000000000000000000000000000000000002200000000tree-sitter-lua-0.1.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",
],
"cflags_c": [
"-std=c11",
],
}
]
}
0707010000000F000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000001F00000000tree-sitter-lua-0.1.0/bindings07070100000010000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002100000000tree-sitter-lua-0.1.0/bindings/c07070100000011000081A400000000000000000000000165EED19C000000EA000000000000000000000000000000000000003300000000tree-sitter-lua-0.1.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_
07070100000012000081A400000000000000000000000165EED19C000000F9000000000000000000000000000000000000003700000000tree-sitter-lua-0.1.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}
07070100000013000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002200000000tree-sitter-lua-0.1.0/bindings/go07070100000014000081A400000000000000000000000165EED19C00000119000000000000000000000000000000000000002D00000000tree-sitter-lua-0.1.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())
}
07070100000015000081A400000000000000000000000165EED19C0000013D000000000000000000000000000000000000003200000000tree-sitter-lua-0.1.0/bindings/go/binding_test.gopackage tree_sitter_lua_test
import (
"testing"
tree_sitter "github.com/smacker/go-tree-sitter"
"github.com/tree-sitter/tree-sitter-lua"
)
func TestCanLoadGrammar(t *testing.T) {
language := tree_sitter.NewLanguage(tree_sitter_lua.Language())
if language == nil {
t.Errorf("Error loading Lua grammar")
}
}
07070100000016000081A400000000000000000000000165EED19C0000008E000000000000000000000000000000000000002900000000tree-sitter-lua-0.1.0/bindings/go/go.modmodule github.com/tree-sitter-grammars/tree-sitter-lua
go 1.22
require github.com/smacker/go-tree-sitter v0.0.0-20230720070738-0d0a9f78d8f8
07070100000017000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002400000000tree-sitter-lua-0.1.0/bindings/node07070100000018000081A400000000000000000000000165EED19C0000023B000000000000000000000000000000000000002F00000000tree-sitter-lua-0.1.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)
07070100000019000081A400000000000000000000000165EED19C000001C4000000000000000000000000000000000000002F00000000tree-sitter-lua-0.1.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;
0707010000001A000081A400000000000000000000000165EED19C000000C9000000000000000000000000000000000000002D00000000tree-sitter-lua-0.1.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 (_) {}
0707010000001B000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002600000000tree-sitter-lua-0.1.0/bindings/python0707010000001C000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000003600000000tree-sitter-lua-0.1.0/bindings/python/tree_sitter_lua0707010000001D000081A400000000000000000000000165EED19C0000003E000000000000000000000000000000000000004200000000tree-sitter-lua-0.1.0/bindings/python/tree_sitter_lua/__init__.py"Lua grammar for tree-sitter"
from ._binding import language
0707010000001E000081A400000000000000000000000165EED19C0000001B000000000000000000000000000000000000004300000000tree-sitter-lua-0.1.0/bindings/python/tree_sitter_lua/__init__.pyidef language() -> int: ...
0707010000001F000081A400000000000000000000000165EED19C00000276000000000000000000000000000000000000004000000000tree-sitter-lua-0.1.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 *self, PyObject *args) {
return PyLong_FromVoidPtr(tree_sitter_lua());
}
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);
}
07070100000020000081A400000000000000000000000165EED19C00000000000000000000000000000000000000000000003F00000000tree-sitter-lua-0.1.0/bindings/python/tree_sitter_lua/py.typed07070100000021000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002400000000tree-sitter-lua-0.1.0/bindings/rust07070100000022000081A400000000000000000000000165EED19C00000295000000000000000000000000000000000000002D00000000tree-sitter-lua-0.1.0/bindings/rust/build.rsfn main() {
let src_dir = std::path::Path::new("src");
let mut c_config = cc::Build::new();
c_config.include(src_dir);
c_config
.flag_if_supported("-Wno-unused-parameter")
.flag_if_supported("-Wno-unused-but-set-variable")
.flag_if_supported("-Wno-trigraphs");
let parser_path = src_dir.join("parser.c");
c_config.file(&parser_path);
println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap());
let scanner_path = src_dir.join("scanner.c");
c_config.file(&scanner_path);
println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap());
c_config.compile("tree-sitter-lua");
}
07070100000023000081A400000000000000000000000165EED19C00000755000000000000000000000000000000000000002B00000000tree-sitter-lua-0.1.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:
//!
//! ```
//! let code = r#"
//! return 42
//! "#;
//! let mut parser = tree_sitter::Parser::new();
//! parser.set_language(&tree_sitter_lua::language()).expect("Error loading lua grammar");
//! 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;
extern "C" {
fn tree_sitter_lua() -> Language;
}
/// Get the tree-sitter [Language][] for this grammar.
///
/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html
pub fn language() -> Language {
unsafe { tree_sitter_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");
pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm");
pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm");
pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm");
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())
.expect("Error loading Lua language");
}
}
07070100000024000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002500000000tree-sitter-lua-0.1.0/bindings/swift07070100000025000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000003300000000tree-sitter-lua-0.1.0/bindings/swift/TreeSitterLua07070100000026000081A400000000000000000000000165EED19C000000EA000000000000000000000000000000000000003900000000tree-sitter-lua-0.1.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_
07070100000027000081A400000000000000000000000165EED19C00003CE3000000000000000000000000000000000000002100000000tree-sitter-lua-0.1.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, ']]'))
)
),
},
});
07070100000028000081A400000000000000000000000165EED19C000034D5000000000000000000000000000000000000002800000000tree-sitter-lua-0.1.0/package-lock.json{
"name": "@tree-sitter-grammars/tree-sitter-lua",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@tree-sitter-grammars/tree-sitter-lua",
"version": "0.1.0",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"node-addon-api": "^7.1.0",
"node-gyp-build": "^4.8.0"
},
"devDependencies": {
"prebuildify": "^6.0.0",
"tree-sitter-cli": "^0.21.0"
},
"peerDependencies": {
"tree-sitter": "^0.21.0"
},
"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/execspawn": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/execspawn/-/execspawn-1.0.1.tgz",
"integrity": "sha512-s2k06Jy9i8CUkYe0+DxRlvtkZoOkwwfhB+Xxo5HGUtrISVW2m98jO2tr67DGRFxZwkjQqloA3v/tNtjhBRBieg==",
"dev": true,
"dependencies": {
"util-extend": "^1.0.1"
}
},
"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": "7.1.0",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz",
"integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==",
"engines": {
"node": "^16 || ^18 || >= 20"
}
},
"node_modules/node-gyp-build": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz",
"integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
"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.0",
"resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.0.tgz",
"integrity": "sha512-DEvK4C3tcimIp7Pzqbs036n9i6CTKGp1XVEpMnr4wV3enKU5sBogPP+lP3KZw7993i42bXnsd5eIxAXQ566Cqw==",
"dev": true,
"dependencies": {
"execspawn": "^1.0.1",
"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.0",
"resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.0.tgz",
"integrity": "sha512-WDhpLxQdW7wsmmnBsf4NGqnEKs+Kxljk/CfbJJxgzZiinfA1gAWnhi/GirQjClw+woXhYsNq930BlskFulMMBQ==",
"hasInstallScript": true,
"peer": true,
"dependencies": {
"node-addon-api": "^7.1.0",
"node-gyp-build": "^4.8.0"
}
},
"node_modules/tree-sitter-cli": {
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.21.0.tgz",
"integrity": "sha512-wA7wT5724fNQW82XDH6zT6ZcYonjrAKLCHHuhLsPcAKULrhp3rNuMvlgBdB5FUBvmjHNhtTZF/qpHenMoRJPBw==",
"dev": true,
"hasInstallScript": true,
"bin": {
"tree-sitter": "cli.js"
}
},
"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/util-extend": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz",
"integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==",
"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
}
}
}
07070100000029000081A400000000000000000000000165EED19C0000053F000000000000000000000000000000000000002300000000tree-sitter-lua-0.1.0/package.json{
"name": "@tree-sitter-grammars/tree-sitter-lua",
"version": "0.1.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/**"
],
"dependencies": {
"node-addon-api": "^7.1.0",
"node-gyp-build": "^4.8.0"
},
"devDependencies": {
"tree-sitter-cli": "^0.21.0",
"prebuildify": "^6.0.0"
},
"peerDependencies": {
"tree-sitter": "^0.21.0"
},
"peerDependenciesMeta": {
"tree_sitter": {
"optional": true
}
},
"scripts": {
"build": "tree-sitter generate --no-bindings",
"test": "tree-sitter test",
"install": "node-gyp-build",
"prebuildify": "prebuildify --napi --strip"
},
"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"
]
}
]
}
0707010000002A000081A400000000000000000000000165EED19C0000032E000000000000000000000000000000000000002500000000tree-sitter-lua-0.1.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.1.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.8"
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.21"]
[tool.cibuildwheel]
build = "cp38-*"
build-frontend = "build"
0707010000002B000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000001E00000000tree-sitter-lua-0.1.0/queries0707010000002C000081A400000000000000000000000165EED19C00000B28000000000000000000000000000000000000002D00000000tree-sitter-lua-0.1.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
0707010000002D000081A400000000000000000000000165EED19C000000F1000000000000000000000000000000000000002D00000000tree-sitter-lua-0.1.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"))
0707010000002E000081A400000000000000000000000165EED19C00000236000000000000000000000000000000000000002900000000tree-sitter-lua-0.1.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
0707010000002F000081A400000000000000000000000165EED19C0000030C000000000000000000000000000000000000002700000000tree-sitter-lua-0.1.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
07070100000030000081A400000000000000000000000165EED19C00000605000000000000000000000000000000000000001F00000000tree-sitter-lua-0.1.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 = "cp38", "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"] if system() != 'Windows' else []
),
define_macros=[
("Py_LIMITED_API", "0x03080000"),
("PY_SSIZE_T_CLEAN", None)
],
include_dirs=["src"],
py_limited_api=True,
)
],
cmdclass={
"build": Build,
"bdist_wheel": BdistWheel
},
zip_safe=False
)
07070100000031000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000001A00000000tree-sitter-lua-0.1.0/src07070100000032000081A400000000000000000000000165EED19C0001229F000000000000000000000000000000000000002700000000tree-sitter-lua-0.1.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"
]
}
07070100000033000081A400000000000000000000000165EED19C00005558000000000000000000000000000000000000002A00000000tree-sitter-lua-0.1.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
}
]07070100000034000081A400000000000000000000000165EED19C0005048F000000000000000000000000000000000000002300000000tree-sitter-lua-0.1.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 inline bool sym_escape_sequence_character_set_1(int32_t c) {
return (c < 'a'
? (c < '\''
? (c < '"'
? c == '\n'
: c <= '"')
: (c <= '\'' || c == '\\'))
: (c <= 'b' || (c < 'r'
? (c < 'n'
? c == 'f'
: c <= 'n')
: (c <= 'r' || (c >= 't' && c <= 'v')))));
}
static bool ts_lex(TSLexer *lexer, TSStateId state) {
START_LEXER();
eof = lexer->eof(lexer);
switch (state) {
case 0:
if (eof) ADVANCE(20);
if (lookahead == '"') ADVANCE(39);
if (lookahead == '#') ADVANCE(76);
if (lookahead == '%') ADVANCE(73);
if (lookahead == '&') ADVANCE(65);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '(') ADVANCE(52);
if (lookahead == ')') ADVANCE(53);
if (lookahead == '*') ADVANCE(70);
if (lookahead == '+') ADVANCE(68);
if (lookahead == ',') ADVANCE(24);
if (lookahead == '-') ADVANCE(69);
if (lookahead == '.') ADVANCE(27);
if (lookahead == '/') ADVANCE(71);
if (lookahead == '0') ADVANCE(34);
if (lookahead == ':') ADVANCE(28);
if (lookahead == ';') ADVANCE(22);
if (lookahead == '<') ADVANCE(29);
if (lookahead == '=') ADVANCE(23);
if (lookahead == '>') ADVANCE(31);
if (lookahead == '[') ADVANCE(54);
if (lookahead == '\\') ADVANCE(6);
if (lookahead == ']') ADVANCE(55);
if (lookahead == '^') ADVANCE(75);
if (lookahead == '{') ADVANCE(56);
if (lookahead == '|') ADVANCE(62);
if (lookahead == '}') ADVANCE(57);
if (lookahead == '~') ADVANCE(64);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(17)
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(33);
if (lookahead != 0 &&
lookahead > 31 &&
(lookahead < 127 || 159 < 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 (sym_escape_sequence_character_set_1(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);
if (lookahead == '"') ADVANCE(39);
if (lookahead == '#') ADVANCE(76);
if (lookahead == '%') ADVANCE(73);
if (lookahead == '&') ADVANCE(65);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '(') ADVANCE(52);
if (lookahead == ')') ADVANCE(53);
if (lookahead == '*') ADVANCE(70);
if (lookahead == '+') ADVANCE(68);
if (lookahead == ',') ADVANCE(24);
if (lookahead == '-') ADVANCE(69);
if (lookahead == '.') ADVANCE(27);
if (lookahead == '/') ADVANCE(71);
if (lookahead == '0') ADVANCE(34);
if (lookahead == ':') ADVANCE(28);
if (lookahead == ';') ADVANCE(22);
if (lookahead == '<') ADVANCE(29);
if (lookahead == '=') ADVANCE(23);
if (lookahead == '>') ADVANCE(31);
if (lookahead == '[') ADVANCE(54);
if (lookahead == ']') ADVANCE(55);
if (lookahead == '^') ADVANCE(75);
if (lookahead == '{') ADVANCE(56);
if (lookahead == '|') ADVANCE(62);
if (lookahead == '}') ADVANCE(57);
if (lookahead == '~') ADVANCE(64);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(17)
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(33);
if (lookahead != 0 &&
lookahead > 31 &&
lookahead != '\\' &&
(lookahead < 127 || 159 < lookahead)) ADVANCE(77);
END_STATE();
case 18:
if (eof) ADVANCE(20);
if (lookahead == '"') ADVANCE(39);
if (lookahead == '#') ADVANCE(76);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '(') ADVANCE(52);
if (lookahead == ')') ADVANCE(53);
if (lookahead == '-') ADVANCE(69);
if (lookahead == '.') ADVANCE(3);
if (lookahead == '0') ADVANCE(34);
if (lookahead == ';') ADVANCE(22);
if (lookahead == '>') ADVANCE(30);
if (lookahead == '[') ADVANCE(54);
if (lookahead == '{') ADVANCE(56);
if (lookahead == '}') ADVANCE(57);
if (lookahead == '~') ADVANCE(63);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(18)
if (('1' <= lookahead && lookahead <= '9')) ADVANCE(33);
if (lookahead != 0 &&
lookahead > 31 &&
(lookahead < '%' || '=' < lookahead) &&
(lookahead < '\\' || '^' < lookahead) &&
(lookahead < '|' || 159 < lookahead)) ADVANCE(77);
END_STATE();
case 19:
if (eof) ADVANCE(20);
if (lookahead == '"') ADVANCE(39);
if (lookahead == '#') ADVANCE(21);
if (lookahead == '%') ADVANCE(73);
if (lookahead == '&') ADVANCE(65);
if (lookahead == '\'') ADVANCE(40);
if (lookahead == '(') ADVANCE(52);
if (lookahead == ')') ADVANCE(53);
if (lookahead == '*') ADVANCE(70);
if (lookahead == '+') ADVANCE(68);
if (lookahead == ',') ADVANCE(24);
if (lookahead == '-') ADVANCE(69);
if (lookahead == '.') ADVANCE(26);
if (lookahead == '/') ADVANCE(71);
if (lookahead == ':') ADVANCE(28);
if (lookahead == ';') ADVANCE(22);
if (lookahead == '<') ADVANCE(29);
if (lookahead == '=') ADVANCE(23);
if (lookahead == '>') ADVANCE(31);
if (lookahead == '[') ADVANCE(54);
if (lookahead == ']') ADVANCE(55);
if (lookahead == '^') ADVANCE(75);
if (lookahead == '{') ADVANCE(56);
if (lookahead == '|') ADVANCE(62);
if (lookahead == '}') ADVANCE(57);
if (lookahead == '~') ADVANCE(64);
if (('\t' <= lookahead && lookahead <= '\r') ||
lookahead == ' ') SKIP(19)
if (lookahead != 0 &&
lookahead > 31 &&
(lookahead < '0' || '9' < lookahead) &&
lookahead != '\\' &&
(lookahead < 127 || 159 < 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);
if (lookahead == '.') ADVANCE(36);
if (lookahead == 'E' ||
lookahead == 'e') ADVANCE(9);
if (lookahead == 'I' ||
lookahead == 'i') ADVANCE(32);
if (lookahead == 'L' ||
lookahead == 'l') ADVANCE(10);
if (lookahead == 'U' ||
lookahead == 'u') ADVANCE(11);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33);
END_STATE();
case 34:
ACCEPT_TOKEN(sym_number);
if (lookahead == '.') ADVANCE(36);
if (lookahead == 'E' ||
lookahead == 'e') ADVANCE(9);
if (lookahead == 'I' ||
lookahead == 'i') ADVANCE(32);
if (lookahead == 'X' ||
lookahead == 'x') ADVANCE(5);
if (lookahead == 'L' ||
lookahead == 'l') ADVANCE(10);
if (lookahead == 'U' ||
lookahead == 'u') ADVANCE(11);
if (('0' <= lookahead && lookahead <= '9')) ADVANCE(33);
END_STATE();
case 35:
ACCEPT_TOKEN(sym_number);
if (lookahead == '.') ADVANCE(37);
if (lookahead == 'I' ||
lookahead == 'i') ADVANCE(32);
if (lookahead == 'P' ||
lookahead == 'p') ADVANCE(9);
if (lookahead == 'L' ||
lookahead == 'l') ADVANCE(10);
if (lookahead == 'U' ||
lookahead == 'u') ADVANCE(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 != 0 &&
lookahead > ' ' &&
lookahead != '"' &&
lookahead != '#' &&
(lookahead < '%' || '/' < lookahead) &&
(lookahead < ':' || '>' < lookahead) &&
(lookahead < '[' || '^' < lookahead) &&
(lookahead < '{' || 159 < 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 == 11 ||
lookahead == '\f' ||
lookahead == ' ') ADVANCE(80);
if (lookahead != 0 &&
(lookahead < '\n' || '\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:
if (lookahead == 'a') ADVANCE(1);
if (lookahead == 'b') ADVANCE(2);
if (lookahead == 'd') ADVANCE(3);
if (lookahead == 'e') ADVANCE(4);
if (lookahead == 'f') ADVANCE(5);
if (lookahead == 'g') ADVANCE(6);
if (lookahead == 'i') ADVANCE(7);
if (lookahead == 'l') ADVANCE(8);
if (lookahead == 'n') ADVANCE(9);
if (lookahead == 'o') ADVANCE(10);
if (lookahead == 'r') ADVANCE(11);
if (lookahead == 't') ADVANCE(12);
if (lookahead == 'u') ADVANCE(13);
if (lookahead == 'w') ADVANCE(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),
[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, .production_id = 23),
[41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_bracket_index_expression, 4, .production_id = 23),
[43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, .production_id = 23),
[45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, .production_id = 23),
[47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 1),
[49] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 1),
[51] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 3, .production_id = 28),
[53] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 3, .production_id = 28),
[55] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4),
[57] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4),
[59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, .production_id = 10),
[61] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, .production_id = 10),
[63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 1),
[65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 1),
[67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1),
[69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1),
[71] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__prefix_expression, 1),
[73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__prefix_expression, 1),
[75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3),
[77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3),
[79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3),
[81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3),
[83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, .production_id = 6),
[85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, .production_id = 6),
[87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2),
[89] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2),
[91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__quote_string, 2, .production_id = 14),
[93] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__quote_string, 2, .production_id = 14),
[95] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 2),
[97] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 2),
[99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block_string, 3, .production_id = 12),
[101] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block_string, 3, .production_id = 12),
[103] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_constructor, 3),
[105] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_constructor, 3),
[107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, .production_id = 16),
[109] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, .production_id = 16),
[111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
[113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 29),
[115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 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, .production_id = 41),
[143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 3, .production_id = 41),
[145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_body, 2, .production_id = 27),
[147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__function_body, 2, .production_id = 27),
[149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 2, .production_id = 13),
[151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 2, .production_id = 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),
[163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2),
[165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(4),
[168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2),
[170] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(129),
[173] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(258),
[176] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(131),
[179] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(256),
[182] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(53),
[185] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(90),
[188] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(48),
[191] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(93),
[194] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(184),
[197] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(170),
[200] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(185),
[203] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 2), SHIFT_REPEAT(94),
[206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 15),
[208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 1, .production_id = 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, .production_id = 30),
[216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 50),
[218] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 50),
[220] = {.entry = {.count = 1, .reusable = false}}, SHIFT(73),
[222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 3, .production_id = 18),
[224] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 3, .production_id = 18),
[226] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
[228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_statement, 1),
[230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_repeat_statement, 4, .production_id = 31),
[232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_repeat_statement, 4, .production_id = 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),
[242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chunk, 1),
[244] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
[246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 1),
[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),
[276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1),
[278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
[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),
[286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91),
[288] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 1),
[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),
[296] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__expression_list_repeat1, 2),
[298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
[300] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1),
[302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 5, .production_id = 56),
[304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 15),
[306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 1, .production_id = 4),
[308] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 1, .production_id = 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, .production_id = 42),
[318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97),
[320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_numeric_clause, 5, .production_id = 55),
[322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 25),
[324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 25),
[326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
[328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 21),
[330] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 21),
[332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
[334] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 2, .production_id = 20),
[336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228),
[338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__att_name_list, 3, .production_id = 36),
[340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__att_name_list, 3, .production_id = 36),
[342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 37),
[344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 37),
[346] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 2, .production_id = 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, .production_id = 58),
[359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
[361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51),
[363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51),
[365] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_explist_repeat1, 2, .production_id = 51), SHIFT_REPEAT(78),
[368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 49),
[370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__att_name_list_repeat1, 3, .production_id = 49),
[372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 39),
[374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_assignment_explist, 2, .production_id = 39),
[376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__attrib, 3),
[378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__attrib, 3),
[380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
[382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2, .production_id = 9),
[384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
[386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 45),
[388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 45),
[390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 2),
[392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 2),
[394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 3, .production_id = 19),
[396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 3, .production_id = 19),
[398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, .production_id = 57),
[400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, .production_id = 57),
[402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_empty_statement, 1),
[404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_empty_statement, 1),
[406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 44),
[408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 44),
[410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 54),
[412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 54),
[414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_goto_statement, 2),
[416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_goto_statement, 2),
[418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 2),
[420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 2),
[422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 53),
[424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 53),
[426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_statement, 3, .production_id = 22),
[428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assignment_statement, 3, .production_id = 22),
[430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 38),
[432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_variable_assignment, 3, .production_id = 38),
[434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, .production_id = 52),
[436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, .production_id = 52),
[438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable_declaration, 2),
[440] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable_declaration, 2),
[442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__local_function_declaration, 4, .production_id = 35),
[444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__local_function_declaration, 4, .production_id = 35),
[446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_do_statement, 3, .production_id = 17),
[448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_do_statement, 3, .production_id = 17),
[450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label_statement, 3),
[452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_label_statement, 3),
[454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 4, .production_id = 33),
[456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 4, .production_id = 33),
[458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 5, .production_id = 48),
[460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 5, .production_id = 48),
[462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, .production_id = 30),
[464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, .production_id = 30),
[466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, .production_id = 30),
[468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, .production_id = 30),
[470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, .production_id = 43),
[472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, .production_id = 43),
[474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_chunk_repeat1, 1),
[476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_chunk_repeat1, 1),
[478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1, .production_id = 1),
[480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_statement, 1, .production_id = 1),
[482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1),
[484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1),
[486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, .production_id = 46),
[488] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, .production_id = 46),
[490] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_declaration, 1, .production_id = 3),
[492] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_declaration, 1, .production_id = 3),
[494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__field_sep, 1),
[496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_sep, 1),
[498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 3, .production_id = 40),
[500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, .production_id = 40),
[502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters, 2),
[504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2),
[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, .production_id = 4),
[524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
[526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 25),
[528] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__expression_list_repeat1, 2), SHIFT_REPEAT(91),
[531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
[533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_list, 2),
[535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression_list, 2),
[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),
[547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174),
[549] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 2),
[551] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(153),
[554] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
[556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_method_index_expression, 3, .production_id = 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, .production_id = 47),
[564] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 47), SHIFT_REPEAT(92),
[567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, .production_id = 47),
[569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 3),
[571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_return_statement, 3),
[573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
[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, .production_id = 26), SHIFT_REPEAT(223),
[584] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 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),
[600] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__block, 2),
[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, .production_id = 4),
[616] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 2),
[618] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 2), SHIFT_REPEAT(206),
[621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__block, 1),
[623] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 2),
[625] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 2), 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),
[634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
[636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32),
[638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, .production_id = 32),
[640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__name_list_repeat1, 2, .production_id = 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, .production_id = 11),
[648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elseif_statement, 4, .production_id = 44),
[650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elseif_statement, 4, .production_id = 44),
[652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1),
[654] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_prefix_expression, 1, .production_id = 7),
[656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_assignment_varlist, 2, .production_id = 11),
[658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
[660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1, .production_id = 4),
[662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__doublequote_string_content, 1),
[664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__doublequote_string_content, 1),
[666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym__singlequote_string_content, 1),
[668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__singlequote_string_content, 1),
[670] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_dot_index_expression, 3, .production_id = 23),
[672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__name_list, 2, .production_id = 11),
[674] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 26),
[676] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__variable_assignment_varlist_repeat1, 2, .production_id = 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),
[687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
[689] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_statement, 2, .production_id = 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, .production_id = 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, .production_id = 4),
[717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144),
[719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_list, 1),
[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, .production_id = 8),
[729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name_method_index_expression, 3, .production_id = 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, .production_id = 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, .production_id = 5),
[773] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment, 3, .production_id = 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 _WIN32
#define TS_PUBLIC __declspec(dllexport)
#else
#define TS_PUBLIC __attribute__((visibility("default")))
#endif
TS_PUBLIC const TSLanguage *tree_sitter_lua() {
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
07070100000035000081A400000000000000000000000165EED19C000011AA000000000000000000000000000000000000002400000000tree-sitter-lua-0.1.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;
}
07070100000036000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002600000000tree-sitter-lua-0.1.0/src/tree_sitter07070100000037000081A400000000000000000000000165EED19C000003BE000000000000000000000000000000000000002E00000000tree-sitter-lua-0.1.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_
07070100000038000081A400000000000000000000000165EED19C00002879000000000000000000000000000000000000002E00000000tree-sitter-lua-0.1.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) \
(_array__grow((Array *)(self), count, array_elem_size(self)), \
memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)), \
(self)->size += (count))
/// 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_
07070100000039000081A400000000000000000000000165EED19C0000159E000000000000000000000000000000000000002F00000000tree-sitter-lua-0.1.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 *);
};
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;
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;
};
/*
* 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 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_val, child_count_val, ...) \
{{ \
.reduce = { \
.type = TSParseActionTypeReduce, \
.symbol = symbol_val, \
.child_count = child_count_val, \
__VA_ARGS__ \
}, \
}}
#define RECOVER() \
{{ \
.type = TSParseActionTypeRecover \
}}
#define ACCEPT_INPUT() \
{{ \
.type = TSParseActionTypeAccept \
}}
#ifdef __cplusplus
}
#endif
#endif // TREE_SITTER_PARSER_H_
0707010000003A000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000001B00000000tree-sitter-lua-0.1.0/test0707010000003B000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002200000000tree-sitter-lua-0.1.0/test/corpus0707010000003C000081A400000000000000000000000165EED19C000004D5000000000000000000000000000000000000002C00000000tree-sitter-lua-0.1.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))))
0707010000003D000081A400000000000000000000000165EED19C00000716000000000000000000000000000000000000002F00000000tree-sitter-lua-0.1.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)))
0707010000003E000081A400000000000000000000000165EED19C00003ED1000000000000000000000000000000000000003200000000tree-sitter-lua-0.1.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)))))
0707010000003F000081A400000000000000000000000165EED19C00003233000000000000000000000000000000000000003100000000tree-sitter-lua-0.1.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))))))))
07070100000040000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002500000000tree-sitter-lua-0.1.0/test/highlight07070100000041000081A400000000000000000000000165EED19C000002FF000000000000000000000000000000000000003000000000tree-sitter-lua-0.1.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
07070100000042000041ED00000000000000000000000265EED19C00000000000000000000000000000000000000000000002000000000tree-sitter-lua-0.1.0/test/tags07070100000043000081A400000000000000000000000165EED19C0000025D000000000000000000000000000000000000002E00000000tree-sitter-lua-0.1.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!!!1068 blocks