diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..d3a8b5b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,39 @@ +root = 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 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8d500c7 --- /dev/null +++ b/Makefile @@ -0,0 +1,112 @@ +VERSION := 0.0.1 + +LANGUAGE_NAME := tree-sitter-openscad + +# 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 + +# source/object files +PARSER := $(SRC_DIR)/parser.c +EXTRAS := $(filter-out $(PARSER),$(wildcard $(SRC_DIR)/*.c)) +OBJS := $(patsubst %.c,%.o,$(PARSER) $(EXTRAS)) + +# flags +ARFLAGS ?= rcs +override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC + +# 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)|' $< > $@ + +$(PARSER): $(SRC_DIR)/grammar.json + $(TS) generate --no-bindings $^ + +install: all + install -d '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)' + install -m644 bindings/c/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h + install -m644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc + install -m644 lib$(LANGUAGE_NAME).a '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a + install -m755 lib$(LANGUAGE_NAME).$(SOEXT) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) + ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) + ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) + +uninstall: + $(RM) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) \ + '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h \ + '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc + +clean: + $(RM) $(OBJS) $(LANGUAGE_NAME).pc lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) + +test: + $(TS) test + +.PHONY: all install uninstall clean test diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..da9a030 --- /dev/null +++ b/Package.swift @@ -0,0 +1,47 @@ +// swift-tools-version:5.3 +import PackageDescription + +let package = Package( + name: "TreeSitterOpenscad", + products: [ + .library(name: "TreeSitterOpenscad", targets: ["TreeSitterOpenscad"]), + ], + dependencies: [], + targets: [ + .target(name: "TreeSitterOpenscad", + path: ".", + exclude: [ + "Cargo.toml", + "Makefile", + "binding.gyp", + "bindings/c", + "bindings/go", + "bindings/node", + "bindings/python", + "bindings/rust", + "prebuilds", + "grammar.js", + "package.json", + "package-lock.json", + "pyproject.toml", + "setup.py", + "test", + "examples", + ".editorconfig", + ".github", + ".gitignore", + ".gitattributes", + ".gitmodules", + ], + sources: [ + "src/parser.c", + // NOTE: if your language has an external scanner, add it here. + ], + resources: [ + .copy("queries") + ], + publicHeadersPath: "bindings/swift", + cSettings: [.headerSearchPath("src")]) + ], + cLanguageStandard: .c11 +) diff --git a/binding.gyp b/binding.gyp index 14920cc..f319251 100644 --- a/binding.gyp +++ b/binding.gyp @@ -2,18 +2,29 @@ "targets": [ { "target_name": "tree_sitter_openscad_binding", + "dependencies": [ + " -#include "nan.h" +#include -using namespace v8; +typedef struct TSLanguage TSLanguage; -extern "C" TSLanguage * tree_sitter_openscad(); +extern "C" TSLanguage *tree_sitter_openscad(); -namespace { +// "tree-sitter", "language" hashed with BLAKE2 +const napi_type_tag LANGUAGE_TYPE_TAG = { + 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16 +}; -NAN_METHOD(New) {} - -void Init(Local exports, Local module) { - Local tpl = Nan::New(New); - tpl->SetClassName(Nan::New("Language").ToLocalChecked()); - tpl->InstanceTemplate()->SetInternalFieldCount(1); - - Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); - Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); - Nan::SetInternalFieldPointer(instance, 0, tree_sitter_openscad()); - - Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("openscad").ToLocalChecked()); - Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports["name"] = Napi::String::New(env, "openscad"); + auto language = Napi::External::New(env, tree_sitter_openscad()); + language.TypeTag(&LANGUAGE_TYPE_TAG); + exports["language"] = language; + return exports; } -NODE_MODULE(tree_sitter_openscad_binding, Init) - -} // namespace +NODE_API_MODULE(tree_sitter_openscad_binding, Init) diff --git a/bindings/node/index.d.ts b/bindings/node/index.d.ts new file mode 100644 index 0000000..efe259e --- /dev/null +++ b/bindings/node/index.d.ts @@ -0,0 +1,28 @@ +type BaseNode = { + type: string; + named: boolean; +}; + +type ChildNode = { + multiple: boolean; + required: boolean; + types: BaseNode[]; +}; + +type NodeInfo = + | (BaseNode & { + subtypes: BaseNode[]; + }) + | (BaseNode & { + fields: { [name: string]: ChildNode }; + children: ChildNode[]; + }); + +type Language = { + name: string; + language: unknown; + nodeTypeInfo: NodeInfo[]; +}; + +declare const language: Language; +export = language; diff --git a/bindings/node/index.js b/bindings/node/index.js index a3327a0..6657bcf 100644 --- a/bindings/node/index.js +++ b/bindings/node/index.js @@ -1,18 +1,6 @@ -try { - module.exports = require("../../build/Release/tree_sitter_openscad_binding"); -} catch (error1) { - if (error1.code !== 'MODULE_NOT_FOUND') { - throw error1; - } - try { - module.exports = require("../../build/Debug/tree_sitter_openscad_binding"); - } catch (error2) { - if (error2.code !== 'MODULE_NOT_FOUND') { - throw error2; - } - throw error1 - } -} +const root = require("path").join(__dirname, "..", ".."); + +module.exports = require("node-gyp-build")(root); try { module.exports.nodeTypeInfo = require("../../src/node-types.json"); diff --git a/bindings/python/tree_sitter_openscad/__init__.py b/bindings/python/tree_sitter_openscad/__init__.py new file mode 100644 index 0000000..02d15ba --- /dev/null +++ b/bindings/python/tree_sitter_openscad/__init__.py @@ -0,0 +1,5 @@ +"Openscad grammar for tree-sitter" + +from ._binding import language + +__all__ = ["language"] diff --git a/bindings/python/tree_sitter_openscad/__init__.pyi b/bindings/python/tree_sitter_openscad/__init__.pyi new file mode 100644 index 0000000..5416666 --- /dev/null +++ b/bindings/python/tree_sitter_openscad/__init__.pyi @@ -0,0 +1 @@ +def language() -> int: ... diff --git a/bindings/python/tree_sitter_openscad/binding.c b/bindings/python/tree_sitter_openscad/binding.c new file mode 100644 index 0000000..8ee8616 --- /dev/null +++ b/bindings/python/tree_sitter_openscad/binding.c @@ -0,0 +1,27 @@ +#include + +typedef struct TSLanguage TSLanguage; + +TSLanguage *tree_sitter_openscad(void); + +static PyObject* _binding_language(PyObject *self, PyObject *args) { + return PyLong_FromVoidPtr(tree_sitter_openscad()); +} + +static PyMethodDef methods[] = { + {"language", _binding_language, METH_NOARGS, + "Get the tree-sitter language for this grammar."}, + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef module = { + .m_base = PyModuleDef_HEAD_INIT, + .m_name = "_binding", + .m_doc = NULL, + .m_size = -1, + .m_methods = methods +}; + +PyMODINIT_FUNC PyInit__binding(void) { + return PyModule_Create(&module); +} diff --git a/bindings/python/tree_sitter_openscad/py.typed b/bindings/python/tree_sitter_openscad/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/bindings/rust/build.rs b/bindings/rust/build.rs index c6061f0..4cc26f5 100644 --- a/bindings/rust/build.rs +++ b/bindings/rust/build.rs @@ -7,6 +7,9 @@ fn main() { .flag_if_supported("-Wno-unused-parameter") .flag_if_supported("-Wno-unused-but-set-variable") .flag_if_supported("-Wno-trigraphs"); + #[cfg(target_env = "msvc")] + c_config.flag("-utf-8"); + let parser_path = src_dir.join("parser.c"); c_config.file(&parser_path); diff --git a/bindings/swift/TreeSitterOpenscad/openscad.h b/bindings/swift/TreeSitterOpenscad/openscad.h new file mode 100644 index 0000000..4b587b2 --- /dev/null +++ b/bindings/swift/TreeSitterOpenscad/openscad.h @@ -0,0 +1,16 @@ +#ifndef TREE_SITTER_OPENSCAD_H_ +#define TREE_SITTER_OPENSCAD_H_ + +typedef struct TSLanguage TSLanguage; + +#ifdef __cplusplus +extern "C" { +#endif + +const TSLanguage *tree_sitter_openscad(void); + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_OPENSCAD_H_ diff --git a/grammar.js b/grammar.js index 2104a48..2068198 100644 --- a/grammar.js +++ b/grammar.js @@ -152,7 +152,7 @@ module.exports = grammar({ seq($.assignment, ';'), $._statement, $.module_declaration, - $.function_declaration, + $.function_item, ), // modules @@ -167,13 +167,14 @@ module.exports = grammar({ // and the RHS as either @variable or @constant _parameter_declaration: $ => choice(alias($._variable_name, $.parameter), $.assignment), - // function declarations are slightly different from $.function, which is for - // function literals - function_declaration: $ => seq( + // function_item diffeers from $.function_lit which defines anonymous functions/ function literals: + // https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/User-Defined_Functions_and_Modules#Function_literals + function_item: $ => seq( 'function', field('name', $.identifier), field('parameters', $.parameters_declaration), '=', $.expression, + ';' ), // statements are language constructs that can create objects @@ -273,13 +274,13 @@ module.exports = grammar({ $.number, $.boolean, $.undef, - $.function, + $.function_lit, $.range, $.list, ), // compound atoms that are still literals - function: $ => seq( + function_lit: $ => seq( 'function', field('parameters', $.parameters_declaration), field('body', $.expression), @@ -377,7 +378,14 @@ module.exports = grammar({ special_variable: $ => seq('$', $.identifier), _variable_name: $ => choice($.identifier, $.special_variable), - string: _ => token(seq('"', repeat(choice(/[^"]/, '\\"')), '"')), + string: _ => seq( + '"', + repeat(choice( + token.immediate(prec(1, /[^"\\]+/)), + '\\', + )), + '"' + ), number: $ => choice($.decimal, $.float), decimal: _ => token(/-?\d+/), float: _ => token(/-?(\d+(\.\d+)?|\.\d+)(e-?\d+)?/), @@ -386,7 +394,7 @@ module.exports = grammar({ // http://stackoverflow.com/questions/13014947/regex-to-match-a-c-style-multiline-comment/36328890#36328890 comment: _ => token(choice( - seq('//', /(\\(.|\r?\n)|[^\\\n])*/), + seq('//', /.*/), seq( '/*', /[^*]*\*+([^/*][^*]*\*+)*/, diff --git a/package.json b/package.json index d824271..81e7697 100644 --- a/package.json +++ b/package.json @@ -3,11 +3,20 @@ "version": "0.5.1", "description": "OpenSCAD grammar for tree-sitter", "main": "bindings/node", + "types": "bindings/node", "keywords": [ "parser", "lexer", "openscad" ], + "files": [ + "grammar.js", + "binding.gyp", + "prebuilds/**", + "bindings/node/*", + "queries/*", + "src/**" + ], "author": "Ian Boll ", "contributors": [ "amaanq (Amaan Qureshi) " @@ -17,27 +26,31 @@ "url": "https://github.com/bollian/tree-sitter-openscad/issues" }, "dependencies": { - "nan": "^2.14.2" + "node-addon-api": "^7.1.0", + "node-gyp-build": "^4.8.0" + }, + "peerDependencies": { + "tree-sitter": "^0.21.0" + }, + "peerDependenciesMeta": { + "tree_sitter": { + "optional": true + } }, "devDependencies": { "eslint": "^8.32.0", "eslint-config-google": "^0.14.0", "tree-sitter-cli": "^0.20", - "tree-sitter": "^0.20" + "tree-sitter": "^0.20", + "prebuildify": "^6.0.0" }, "repository": "https://github.com/bollian/tree-sitter-openscad", "scripts": { "build": "tree-sitter generate && node-gyp build", "test": "tree-sitter test && node --test", "parse": "tree-sitter parse", - "test-windows": "tree-sitter test" - }, - "tree-sitter": [ - { - "scope": "source.openscad", - "file-types": [ - "scad" - ] - } - ] + "test-windows": "tree-sitter test", + "install": "node-gyp-build", + "prebuildify": "prebuildify --napi --strip" + } } diff --git a/parser.dylib b/parser.dylib new file mode 100755 index 0000000..7eeda09 Binary files /dev/null and b/parser.dylib differ diff --git a/parser.dylib.dSYM/Contents/Info.plist b/parser.dylib.dSYM/Contents/Info.plist new file mode 100644 index 0000000..bf9a54d --- /dev/null +++ b/parser.dylib.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.parser.dylib + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/parser.dylib.dSYM/Contents/Resources/DWARF/parser.dylib b/parser.dylib.dSYM/Contents/Resources/DWARF/parser.dylib new file mode 100644 index 0000000..b9a9a48 Binary files /dev/null and b/parser.dylib.dSYM/Contents/Resources/DWARF/parser.dylib differ diff --git a/parser.dylib.dSYM/Contents/Resources/Relocations/aarch64/parser.dylib.yml b/parser.dylib.dSYM/Contents/Resources/Relocations/aarch64/parser.dylib.yml new file mode 100644 index 0000000..2c28d6f --- /dev/null +++ b/parser.dylib.dSYM/Contents/Resources/Relocations/aarch64/parser.dylib.yml @@ -0,0 +1,28 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: '/Users/mkatychev/Documents/tree-sitter/openscad/parser.dylib' +relocations: + - { offsetInCU: 0x26, offset: 0x26, size: 0x8, addend: 0x0, symName: _tree_sitter_openscad, symObjAddr: 0x0, symBinAddr: 0x308C, symSize: 0xC } + - { offsetInCU: 0x33, offset: 0x33, size: 0x8, addend: 0x0, symName: _tree_sitter_openscad, symObjAddr: 0x0, symBinAddr: 0x308C, symSize: 0xC } + - { offsetInCU: 0x5A, offset: 0x5A, size: 0x8, addend: 0x0, symName: _tree_sitter_openscad.language, symObjAddr: 0x8A30, symBinAddr: 0xC000, symSize: 0x0 } + - { offsetInCU: 0x605, offset: 0x605, size: 0x8, addend: 0x0, symName: _ts_parse_table, symObjAddr: 0x6F36, symBinAddr: 0x9FC2, symSize: 0x0 } + - { offsetInCU: 0x634, offset: 0x634, size: 0x8, addend: 0x0, symName: _ts_small_parse_table, symObjAddr: 0x16B6, symBinAddr: 0x4742, symSize: 0x0 } + - { offsetInCU: 0x657, offset: 0x657, size: 0x8, addend: 0x0, symName: _ts_small_parse_table_map, symObjAddr: 0x629C, symBinAddr: 0x9328, symSize: 0x0 } + - { offsetInCU: 0x679, offset: 0x679, size: 0x8, addend: 0x0, symName: _ts_parse_actions, symObjAddr: 0x70F2, symBinAddr: 0xA17E, symSize: 0x0 } + - { offsetInCU: 0x69B, offset: 0x69B, size: 0x8, addend: 0x0, symName: _ts_symbol_names, symObjAddr: 0x8B18, symBinAddr: 0xC0E8, symSize: 0x0 } + - { offsetInCU: 0x6BD, offset: 0x6BD, size: 0x8, addend: 0x0, symName: _ts_field_names, symObjAddr: 0x8E98, symBinAddr: 0xC468, symSize: 0x0 } + - { offsetInCU: 0x6DF, offset: 0x6DF, size: 0x8, addend: 0x0, symName: _ts_field_map_slices, symObjAddr: 0x661C, symBinAddr: 0x96A8, symSize: 0x0 } + - { offsetInCU: 0x701, offset: 0x701, size: 0x8, addend: 0x0, symName: _ts_field_map_entries, symObjAddr: 0x6690, symBinAddr: 0x971C, symSize: 0x0 } + - { offsetInCU: 0x723, offset: 0x723, size: 0x8, addend: 0x0, symName: _ts_symbol_metadata, symObjAddr: 0x67B0, symBinAddr: 0x983C, symSize: 0x0 } + - { offsetInCU: 0x744, offset: 0x744, size: 0x8, addend: 0x0, symName: _ts_symbol_map, symObjAddr: 0x6900, symBinAddr: 0x998C, symSize: 0x0 } + - { offsetInCU: 0x766, offset: 0x766, size: 0x8, addend: 0x0, symName: _ts_non_terminal_alias_map, symObjAddr: 0x69E0, symBinAddr: 0x9A6C, symSize: 0x0 } + - { offsetInCU: 0x788, offset: 0x788, size: 0x8, addend: 0x0, symName: _ts_alias_sequences, symObjAddr: 0x86EA, symBinAddr: 0xB776, symSize: 0x0 } + - { offsetInCU: 0x7B0, offset: 0x7B0, size: 0x8, addend: 0x0, symName: _ts_lex_modes, symObjAddr: 0x69EA, symBinAddr: 0x9A76, symSize: 0x0 } + - { offsetInCU: 0x7C5, offset: 0x7C5, size: 0x8, addend: 0x0, symName: _ts_lex, symObjAddr: 0xC, symBinAddr: 0x3098, symSize: 0xA00 } + - { offsetInCU: 0x7EC, offset: 0x7EC, size: 0x8, addend: 0x0, symName: _ts_lex.map, symObjAddr: 0x88F4, symBinAddr: 0xB980, symSize: 0x0 } + - { offsetInCU: 0x802, offset: 0x802, size: 0x8, addend: 0x0, symName: _ts_lex.map.129, symObjAddr: 0x8960, symBinAddr: 0xB9EC, symSize: 0x0 } + - { offsetInCU: 0x818, offset: 0x818, size: 0x8, addend: 0x0, symName: _ts_lex.map.130, symObjAddr: 0x89A8, symBinAddr: 0xBA34, symSize: 0x0 } + - { offsetInCU: 0xA82, offset: 0xA82, size: 0x8, addend: 0x0, symName: _ts_lex_keywords, symObjAddr: 0xA0C, symBinAddr: 0x3A98, symSize: 0x694 } + - { offsetInCU: 0xAA9, offset: 0xAA9, size: 0x8, addend: 0x0, symName: _ts_lex_keywords.map, symObjAddr: 0x8A0C, symBinAddr: 0xBA98, symSize: 0x0 } + - { offsetInCU: 0xB98, offset: 0xB98, size: 0x8, addend: 0x0, symName: _ts_primary_state_ids, symObjAddr: 0x6D72, symBinAddr: 0x9DFE, symSize: 0x0 } +... diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..1350633 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,29 @@ +[build-system] +requires = ["setuptools>=42", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "tree-sitter-openscad" +description = "Openscad grammar for tree-sitter" +version = "0.0.1" +keywords = ["incremental", "parsing", "tree-sitter", "openscad"] +classifiers = [ + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Topic :: Software Development :: Compilers", + "Topic :: Text Processing :: Linguistic", + "Typing :: Typed" +] +requires-python = ">=3.8" +license.text = "MIT" +readme = "README.md" + +[project.urls] +Homepage = "https://github.com/tree-sitter/tree-sitter-openscad" + +[project.optional-dependencies] +core = ["tree-sitter~=0.21"] + +[tool.cibuildwheel] +build = "cp38-*" +build-frontend = "build" diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..907061d --- /dev/null +++ b/setup.py @@ -0,0 +1,60 @@ +from os.path import isdir, join +from platform import system + +from setuptools import Extension, find_packages, setup +from setuptools.command.build import build +from wheel.bdist_wheel import bdist_wheel + + +class Build(build): + def run(self): + if isdir("queries"): + dest = join(self.build_lib, "tree_sitter_openscad", "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_openscad": ["*.pyi", "py.typed"], + "tree_sitter_openscad.queries": ["*.scm"], + }, + ext_package="tree_sitter_openscad", + ext_modules=[ + Extension( + name="_binding", + sources=[ + "bindings/python/tree_sitter_openscad/binding.c", + "src/parser.c", + # NOTE: if your language uses an external scanner, add it here. + ], + extra_compile_args=[ + "-std=c11", + ] if system() != "Windows" else [ + "/std:c11", + "/utf-8", + ], + 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 +) diff --git a/src/grammar.json b/src/grammar.json index 97e4064..d9f93d9 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "openscad", "word": "identifier", "rules": { @@ -44,7 +45,7 @@ }, { "type": "SYMBOL", - "name": "function_declaration" + "name": "function_item" } ] }, @@ -162,7 +163,7 @@ } ] }, - "function_declaration": { + "function_item": { "type": "SEQ", "members": [ { @@ -192,6 +193,10 @@ { "type": "SYMBOL", "name": "expression" + }, + { + "type": "STRING", + "value": ";" } ] }, @@ -863,7 +868,7 @@ }, { "type": "SYMBOL", - "name": "function" + "name": "function_lit" }, { "type": "SYMBOL", @@ -875,7 +880,7 @@ } ] }, - "function": { + "function_lit": { "type": "SEQ", "members": [ { @@ -1995,36 +2000,40 @@ ] }, "string": { - "type": "TOKEN", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\"" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[^\"]" - }, - { - "type": "STRING", - "value": "\\\"" + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\"\\\\]+" + } } - ] - } - }, - { - "type": "STRING", - "value": "\"" + }, + { + "type": "STRING", + "value": "\\" + } + ] } - ] - } + }, + { + "type": "STRING", + "value": "\"" + } + ] }, "number": { "type": "CHOICE", @@ -2084,7 +2093,7 @@ }, { "type": "PATTERN", - "value": "(\\\\(.|\\r?\\n)|[^\\\\\\n])*" + "value": ".*" } ] }, @@ -2129,4 +2138,3 @@ "number" ] } - diff --git a/src/node-types.json b/src/node-types.json index 7c3d4da..aef1205 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -62,7 +62,7 @@ "named": true }, { - "type": "function", + "type": "function_lit", "named": true }, { @@ -570,25 +570,25 @@ } }, { - "type": "function", + "type": "function_call", "named": true, "fields": { - "body": { + "arguments": { "multiple": false, "required": true, "types": [ { - "type": "expression", + "type": "arguments", "named": true } ] }, - "parameters": { + "function": { "multiple": false, "required": true, "types": [ { - "type": "parameters_declaration", + "type": "expression", "named": true } ] @@ -596,41 +596,51 @@ } }, { - "type": "function_call", + "type": "function_item", "named": true, "fields": { - "arguments": { + "name": { "multiple": false, "required": true, "types": [ { - "type": "arguments", + "type": "identifier", "named": true } ] }, - "function": { + "parameters": { "multiple": false, "required": true, "types": [ { - "type": "expression", + "type": "parameters_declaration", "named": true } ] } + }, + "children": { + "multiple": false, + "required": true, + "types": [ + { + "type": "expression", + "named": true + } + ] } }, { - "type": "function_declaration", + "type": "function_lit", "named": true, "fields": { - "name": { + "body": { "multiple": false, "required": true, "types": [ { - "type": "identifier", + "type": "expression", "named": true } ] @@ -645,16 +655,6 @@ } ] } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] } }, { @@ -1355,6 +1355,7 @@ { "type": "source_file", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -1377,7 +1378,7 @@ "named": true }, { - "type": "function_declaration", + "type": "function_item", "named": true }, { @@ -1434,6 +1435,11 @@ ] } }, + { + "type": "string", + "named": true, + "fields": {} + }, { "type": "ternary_expression", "named": true, @@ -1565,7 +1571,7 @@ "named": true }, { - "type": "function_declaration", + "type": "function_item", "named": true }, { @@ -1626,6 +1632,10 @@ "type": "!=", "named": false }, + { + "type": "\"", + "named": false + }, { "type": "#", "named": false @@ -1714,6 +1724,10 @@ "type": "[", "named": false }, + { + "type": "\\", + "named": false + }, { "type": "]", "named": false @@ -1790,10 +1804,6 @@ "type": "module", "named": false }, - { - "type": "string", - "named": true - }, { "type": "true", "named": false diff --git a/src/parser.c b/src/parser.c index 818c74b..bbea73b 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,22 +1,21 @@ -#include +#include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 221 +#define STATE_COUNT 227 #define LARGE_STATE_COUNT 2 -#define SYMBOL_COUNT 107 +#define SYMBOL_COUNT 111 #define ALIAS_COUNT 1 -#define TOKEN_COUNT 51 +#define TOKEN_COUNT 53 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 19 #define MAX_ALIAS_SEQUENCE_LENGTH 9 #define PRODUCTION_ID_COUNT 29 -enum { +enum ts_symbol_identifiers { sym_identifier = 1, anon_sym_SEMI = 2, anon_sym_module = 3, @@ -60,70 +59,74 @@ enum { anon_sym_QMARK = 41, anon_sym_assert = 42, anon_sym_DOLLAR = 43, - sym_string = 44, - sym_decimal = 45, - sym_float = 46, - anon_sym_true = 47, - anon_sym_false = 48, - sym_undef = 49, - sym_comment = 50, - sym_source_file = 51, - sym__item = 52, - sym_module_declaration = 53, - sym_parameters_declaration = 54, - sym__parameter_declaration = 55, - sym_function_declaration = 56, - sym__statement = 57, - sym_include_statement = 58, - sym_use_statement = 59, - sym_assignment = 60, - sym_union_block = 61, - sym_for_block = 62, - sym_intersection_for_block = 63, - sym_let_block = 64, - sym_assign_block = 65, - sym_if_block = 66, - sym_modifier_chain = 67, - sym_modifier = 68, - sym_transform_chain = 69, - sym_module_call = 70, - sym_arguments = 71, - sym_parenthesized_assignments = 72, - sym_parenthesized_expression = 73, - sym_condition_update_clause = 74, - sym_expression = 75, - sym_let_expression = 76, - sym_literal = 77, - sym_function = 78, - sym_range = 79, - sym_list = 80, - sym__list_cell = 81, - sym__comprehension_cell = 82, - sym_each = 83, - sym_list_comprehension = 84, - sym_for_clause = 85, - sym_if_clause = 86, - sym_function_call = 87, - sym_index_expression = 88, - sym_dot_index_expression = 89, - sym_unary_expression = 90, - sym_binary_expression = 91, - sym_ternary_expression = 92, - sym__assert_clause = 93, - sym_assert_statement = 94, - sym_assert_expression = 95, - sym_special_variable = 96, - sym__variable_name = 97, - sym_number = 98, - sym_boolean = 99, - aux_sym_source_file_repeat1 = 100, - aux_sym_parameters_declaration_repeat1 = 101, - aux_sym_union_block_repeat1 = 102, - aux_sym_arguments_repeat1 = 103, - aux_sym_parenthesized_assignments_repeat1 = 104, - aux_sym_list_repeat1 = 105, - aux_sym__assert_clause_repeat1 = 106, - alias_sym_parameter = 107, + anon_sym_DQUOTE = 44, + aux_sym_string_token1 = 45, + anon_sym_BSLASH = 46, + sym_decimal = 47, + sym_float = 48, + anon_sym_true = 49, + anon_sym_false = 50, + sym_undef = 51, + sym_comment = 52, + sym_source_file = 53, + sym__item = 54, + sym_module_declaration = 55, + sym_parameters_declaration = 56, + sym__parameter_declaration = 57, + sym_function_item = 58, + sym__statement = 59, + sym_include_statement = 60, + sym_use_statement = 61, + sym_assignment = 62, + sym_union_block = 63, + sym_for_block = 64, + sym_intersection_for_block = 65, + sym_let_block = 66, + sym_assign_block = 67, + sym_if_block = 68, + sym_modifier_chain = 69, + sym_modifier = 70, + sym_transform_chain = 71, + sym_module_call = 72, + sym_arguments = 73, + sym_parenthesized_assignments = 74, + sym_parenthesized_expression = 75, + sym_condition_update_clause = 76, + sym_expression = 77, + sym_let_expression = 78, + sym_literal = 79, + sym_function_lit = 80, + sym_range = 81, + sym_list = 82, + sym__list_cell = 83, + sym__comprehension_cell = 84, + sym_each = 85, + sym_list_comprehension = 86, + sym_for_clause = 87, + sym_if_clause = 88, + sym_function_call = 89, + sym_index_expression = 90, + sym_dot_index_expression = 91, + sym_unary_expression = 92, + sym_binary_expression = 93, + sym_ternary_expression = 94, + sym__assert_clause = 95, + sym_assert_statement = 96, + sym_assert_expression = 97, + sym_special_variable = 98, + sym__variable_name = 99, + sym_string = 100, + sym_number = 101, + sym_boolean = 102, + aux_sym_source_file_repeat1 = 103, + aux_sym_parameters_declaration_repeat1 = 104, + aux_sym_union_block_repeat1 = 105, + aux_sym_arguments_repeat1 = 106, + aux_sym_parenthesized_assignments_repeat1 = 107, + aux_sym_list_repeat1 = 108, + aux_sym__assert_clause_repeat1 = 109, + aux_sym_string_repeat1 = 110, + alias_sym_parameter = 111, }; static const char * const ts_symbol_names[] = { @@ -171,7 +174,9 @@ static const char * const ts_symbol_names[] = { [anon_sym_QMARK] = "\?", [anon_sym_assert] = "assert", [anon_sym_DOLLAR] = "$", - [sym_string] = "string", + [anon_sym_DQUOTE] = "\"", + [aux_sym_string_token1] = "string_token1", + [anon_sym_BSLASH] = "\\", [sym_decimal] = "decimal", [sym_float] = "float", [anon_sym_true] = "true", @@ -183,7 +188,7 @@ static const char * const ts_symbol_names[] = { [sym_module_declaration] = "module_declaration", [sym_parameters_declaration] = "parameters_declaration", [sym__parameter_declaration] = "_parameter_declaration", - [sym_function_declaration] = "function_declaration", + [sym_function_item] = "function_item", [sym__statement] = "_statement", [sym_include_statement] = "include_statement", [sym_use_statement] = "use_statement", @@ -205,7 +210,7 @@ static const char * const ts_symbol_names[] = { [sym_expression] = "expression", [sym_let_expression] = "let_expression", [sym_literal] = "literal", - [sym_function] = "function", + [sym_function_lit] = "function_lit", [sym_range] = "range", [sym_list] = "list", [sym__list_cell] = "_list_cell", @@ -225,6 +230,7 @@ static const char * const ts_symbol_names[] = { [sym_assert_expression] = "assert_expression", [sym_special_variable] = "special_variable", [sym__variable_name] = "_variable_name", + [sym_string] = "string", [sym_number] = "number", [sym_boolean] = "boolean", [aux_sym_source_file_repeat1] = "source_file_repeat1", @@ -234,6 +240,7 @@ static const char * const ts_symbol_names[] = { [aux_sym_parenthesized_assignments_repeat1] = "parenthesized_assignments_repeat1", [aux_sym_list_repeat1] = "list_repeat1", [aux_sym__assert_clause_repeat1] = "_assert_clause_repeat1", + [aux_sym_string_repeat1] = "string_repeat1", [alias_sym_parameter] = "parameter", }; @@ -282,7 +289,9 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_QMARK] = anon_sym_QMARK, [anon_sym_assert] = anon_sym_assert, [anon_sym_DOLLAR] = anon_sym_DOLLAR, - [sym_string] = sym_string, + [anon_sym_DQUOTE] = anon_sym_DQUOTE, + [aux_sym_string_token1] = aux_sym_string_token1, + [anon_sym_BSLASH] = anon_sym_BSLASH, [sym_decimal] = sym_decimal, [sym_float] = sym_float, [anon_sym_true] = anon_sym_true, @@ -294,7 +303,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_module_declaration] = sym_module_declaration, [sym_parameters_declaration] = sym_parameters_declaration, [sym__parameter_declaration] = sym__parameter_declaration, - [sym_function_declaration] = sym_function_declaration, + [sym_function_item] = sym_function_item, [sym__statement] = sym__statement, [sym_include_statement] = sym_include_statement, [sym_use_statement] = sym_use_statement, @@ -316,7 +325,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_expression] = sym_expression, [sym_let_expression] = sym_let_expression, [sym_literal] = sym_literal, - [sym_function] = sym_function, + [sym_function_lit] = sym_function_lit, [sym_range] = sym_range, [sym_list] = sym_list, [sym__list_cell] = sym__list_cell, @@ -336,6 +345,7 @@ static const TSSymbol ts_symbol_map[] = { [sym_assert_expression] = sym_assert_expression, [sym_special_variable] = sym_special_variable, [sym__variable_name] = sym__variable_name, + [sym_string] = sym_string, [sym_number] = sym_number, [sym_boolean] = sym_boolean, [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1, @@ -345,6 +355,7 @@ static const TSSymbol ts_symbol_map[] = { [aux_sym_parenthesized_assignments_repeat1] = aux_sym_parenthesized_assignments_repeat1, [aux_sym_list_repeat1] = aux_sym_list_repeat1, [aux_sym__assert_clause_repeat1] = aux_sym__assert_clause_repeat1, + [aux_sym_string_repeat1] = aux_sym_string_repeat1, [alias_sym_parameter] = alias_sym_parameter, }; @@ -525,9 +536,17 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, - [sym_string] = { + [anon_sym_DQUOTE] = { .visible = true, - .named = true, + .named = false, + }, + [aux_sym_string_token1] = { + .visible = false, + .named = false, + }, + [anon_sym_BSLASH] = { + .visible = true, + .named = false, }, [sym_decimal] = { .visible = true, @@ -573,7 +592,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, - [sym_function_declaration] = { + [sym_function_item] = { .visible = true, .named = true, }, @@ -663,7 +682,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .named = true, .supertype = true, }, - [sym_function] = { + [sym_function_lit] = { .visible = true, .named = true, }, @@ -743,6 +762,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [sym_string] = { + .visible = true, + .named = true, + }, [sym_number] = { .visible = false, .named = true, @@ -780,13 +803,17 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_string_repeat1] = { + .visible = false, + .named = false, + }, [alias_sym_parameter] = { .visible = true, .named = true, }, }; -enum { +enum ts_field_identifiers { field_alternative = 1, field_arguments = 2, field_body = 3, @@ -842,8 +869,8 @@ static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [9] = {.index = 15, .length = 1}, [10] = {.index = 16, .length = 2}, [11] = {.index = 18, .length = 2}, - [12] = {.index = 20, .length = 2}, - [13] = {.index = 22, .length = 4}, + [12] = {.index = 20, .length = 4}, + [13] = {.index = 24, .length = 2}, [14] = {.index = 26, .length = 2}, [15] = {.index = 28, .length = 2}, [16] = {.index = 30, .length = 3}, @@ -887,19 +914,19 @@ static const TSFieldMapEntry ts_field_map_entries[] = { [15] = {field_condition, 2}, [16] = - {field_name, 1}, - {field_parameters, 2}, - [18] = {field_body, 2}, {field_parameters, 1}, - [20] = + [18] = {field_index, 2}, {field_value, 0}, - [22] = + [20] = {field_alternative, 3}, {field_alternative, 4}, {field_condition, 1}, {field_consequence, 2}, + [24] = + {field_name, 1}, + {field_parameters, 2}, [26] = {field_condition, 2}, {field_message, 4}, @@ -1025,7 +1052,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [44] = 44, [45] = 45, [46] = 46, - [47] = 47, + [47] = 31, [48] = 48, [49] = 49, [50] = 50, @@ -1046,7 +1073,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [65] = 65, [66] = 66, [67] = 67, - [68] = 57, + [68] = 68, [69] = 69, [70] = 70, [71] = 71, @@ -1113,13 +1140,13 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [132] = 132, [133] = 133, [134] = 134, - [135] = 130, + [135] = 135, [136] = 136, [137] = 137, [138] = 138, [139] = 139, [140] = 140, - [141] = 26, + [141] = 134, [142] = 142, [143] = 143, [144] = 144, @@ -1127,7 +1154,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [146] = 146, [147] = 147, [148] = 148, - [149] = 149, + [149] = 50, [150] = 150, [151] = 151, [152] = 152, @@ -1199,6 +1226,12 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [218] = 218, [219] = 219, [220] = 220, + [221] = 221, + [222] = 222, + [223] = 223, + [224] = 224, + [225] = 225, + [226] = 226, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -1206,90 +1239,122 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(15); - if (lookahead == '!') ADVANCE(27); - if (lookahead == '"') ADVANCE(2); - if (lookahead == '#') ADVANCE(28); - if (lookahead == '$') ADVANCE(50); - if (lookahead == '%') ADVANCE(29); - if (lookahead == '&') ADVANCE(4); - if (lookahead == '(') ADVANCE(17); - if (lookahead == ')') ADVANCE(19); - if (lookahead == '*') ADVANCE(25); - if (lookahead == '+') ADVANCE(37); - if (lookahead == ',') ADVANCE(18); - if (lookahead == '-') ADVANCE(36); - if (lookahead == '.') ADVANCE(34); - if (lookahead == '/') ADVANCE(46); - if (lookahead == ':') ADVANCE(31); - if (lookahead == ';') ADVANCE(16); - if (lookahead == '<') ADVANCE(42); - if (lookahead == '=') ADVANCE(21); - if (lookahead == '>') ADVANCE(43); - if (lookahead == '?') ADVANCE(48); - if (lookahead == '[') ADVANCE(30); - if (lookahead == ']') ADVANCE(32); - if (lookahead == '^') ADVANCE(47); - if (lookahead == '{') ADVANCE(23); - if (lookahead == '|') ADVANCE(10); - if (lookahead == '}') ADVANCE(24); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(0) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(49); + if (eof) ADVANCE(16); + ADVANCE_MAP( + '!', 28, + '"', 52, + '#', 29, + '$', 51, + '%', 30, + '&', 4, + '(', 18, + ')', 20, + '*', 26, + '+', 38, + ',', 19, + '-', 37, + '.', 35, + '/', 47, + ':', 32, + ';', 17, + '<', 43, + '=', 22, + '>', 44, + '?', 49, + '[', 31, + '\\', 59, + ']', 33, + '^', 48, + '{', 24, + '|', 12, + '}', 25, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(0); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(60); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(50); END_STATE(); case 1: - if (lookahead == '!') ADVANCE(26); - if (lookahead == '"') ADVANCE(2); - if (lookahead == '#') ADVANCE(28); - if (lookahead == '$') ADVANCE(50); - if (lookahead == '%') ADVANCE(29); - if (lookahead == '(') ADVANCE(17); - if (lookahead == ')') ADVANCE(19); - if (lookahead == '*') ADVANCE(25); - if (lookahead == '+') ADVANCE(37); - if (lookahead == '-') ADVANCE(36); - if (lookahead == '.') ADVANCE(11); - if (lookahead == '/') ADVANCE(5); - if (lookahead == ';') ADVANCE(16); - if (lookahead == '<') ADVANCE(9); - if (lookahead == '=') ADVANCE(20); - if (lookahead == '[') ADVANCE(30); - if (lookahead == ']') ADVANCE(32); - if (lookahead == '{') ADVANCE(23); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(1) - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53); + ADVANCE_MAP( + '!', 28, + '#', 29, + '%', 30, + '&', 4, + '(', 18, + ')', 20, + '*', 26, + '+', 38, + ',', 19, + '-', 36, + '.', 34, + '/', 47, + ':', 32, + ';', 17, + '<', 43, + '=', 10, + '>', 44, + '?', 49, + '[', 31, + ']', 33, + '^', 48, + '{', 24, + '|', 12, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(1); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(49); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(50); END_STATE(); case 2: - if (lookahead == '"') ADVANCE(51); - if (lookahead == '\\') ADVANCE(3); - if (lookahead != 0) ADVANCE(2); + ADVANCE_MAP( + '!', 9, + '%', 30, + '&', 4, + '(', 18, + ')', 20, + '*', 26, + '+', 38, + ',', 19, + '-', 36, + '.', 34, + '/', 47, + ':', 32, + ';', 17, + '<', 43, + '=', 22, + '>', 44, + '?', 49, + '[', 31, + ']', 33, + '^', 48, + '|', 12, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(2); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(50); END_STATE(); case 3: if (lookahead == '"') ADVANCE(52); - if (lookahead == '\\') ADVANCE(3); - if (lookahead != 0) ADVANCE(2); + if (lookahead == '/') ADVANCE(54); + if (lookahead == '\\') ADVANCE(59); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(57); + if (lookahead != 0) ADVANCE(58); END_STATE(); case 4: - if (lookahead == '&') ADVANCE(39); + if (lookahead == '&') ADVANCE(40); END_STATE(); case 5: if (lookahead == '*') ADVANCE(7); - if (lookahead == '/') ADVANCE(57); + if (lookahead == '/') ADVANCE(64); END_STATE(); case 6: if (lookahead == '*') ADVANCE(6); - if (lookahead == '/') ADVANCE(56); + if (lookahead == '/') ADVANCE(63); if (lookahead != 0) ADVANCE(7); END_STATE(); case 7: @@ -1297,221 +1362,252 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead != 0) ADVANCE(7); END_STATE(); case 8: - if (lookahead == '-') ADVANCE(12); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (lookahead == '-') ADVANCE(14); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); END_STATE(); case 9: - if (lookahead == '>') ADVANCE(22); - if (lookahead != 0) ADVANCE(9); + if (lookahead == '=') ADVANCE(42); END_STATE(); case 10: - if (lookahead == '|') ADVANCE(38); + if (lookahead == '=') ADVANCE(41); END_STATE(); case 11: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(54); + if (lookahead == '>') ADVANCE(23); + if (lookahead != 0) ADVANCE(11); END_STATE(); case 12: - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + if (lookahead == '|') ADVANCE(39); END_STATE(); case 13: - if (lookahead != 0 && - lookahead != '\r') ADVANCE(57); - if (lookahead == '\r') ADVANCE(58); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61); END_STATE(); case 14: - if (eof) ADVANCE(15); - if (lookahead == '!') ADVANCE(27); - if (lookahead == '#') ADVANCE(28); - if (lookahead == '$') ADVANCE(50); - if (lookahead == '%') ADVANCE(29); - if (lookahead == '&') ADVANCE(4); - if (lookahead == '(') ADVANCE(17); - if (lookahead == ')') ADVANCE(19); - if (lookahead == '*') ADVANCE(25); - if (lookahead == '+') ADVANCE(37); - if (lookahead == ',') ADVANCE(18); - if (lookahead == '-') ADVANCE(35); - if (lookahead == '.') ADVANCE(33); - if (lookahead == '/') ADVANCE(46); - if (lookahead == ':') ADVANCE(31); - if (lookahead == ';') ADVANCE(16); - if (lookahead == '<') ADVANCE(42); - if (lookahead == '=') ADVANCE(21); - if (lookahead == '>') ADVANCE(43); - if (lookahead == '?') ADVANCE(48); - if (lookahead == '[') ADVANCE(30); - if (lookahead == ']') ADVANCE(32); - if (lookahead == '^') ADVANCE(47); - if (lookahead == '{') ADVANCE(23); - if (lookahead == '|') ADVANCE(10); - if (lookahead == '}') ADVANCE(24); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(14) - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(49); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); END_STATE(); case 15: - ACCEPT_TOKEN(ts_builtin_sym_end); + if (eof) ADVANCE(16); + ADVANCE_MAP( + '!', 27, + '"', 52, + '#', 29, + '$', 51, + '%', 30, + '(', 18, + ')', 20, + '*', 26, + '+', 38, + '-', 37, + '.', 13, + '/', 5, + ';', 17, + '<', 11, + '=', 21, + '[', 31, + ']', 33, + '{', 24, + '}', 25, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(15); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(60); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(50); END_STATE(); case 16: - ACCEPT_TOKEN(anon_sym_SEMI); + ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); case 17: - ACCEPT_TOKEN(anon_sym_LPAREN); + ACCEPT_TOKEN(anon_sym_SEMI); END_STATE(); case 18: - ACCEPT_TOKEN(anon_sym_COMMA); + ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); case 19: - ACCEPT_TOKEN(anon_sym_RPAREN); + ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); case 20: - ACCEPT_TOKEN(anon_sym_EQ); + ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); case 21: ACCEPT_TOKEN(anon_sym_EQ); - if (lookahead == '=') ADVANCE(40); END_STATE(); case 22: - ACCEPT_TOKEN(sym_include_path); + ACCEPT_TOKEN(anon_sym_EQ); + if (lookahead == '=') ADVANCE(41); END_STATE(); case 23: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(sym_include_path); END_STATE(); case 24: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 25: - ACCEPT_TOKEN(anon_sym_STAR); + ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); case 26: - ACCEPT_TOKEN(anon_sym_BANG); + ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); case 27: ACCEPT_TOKEN(anon_sym_BANG); - if (lookahead == '=') ADVANCE(41); END_STATE(); case 28: - ACCEPT_TOKEN(anon_sym_POUND); + ACCEPT_TOKEN(anon_sym_BANG); + if (lookahead == '=') ADVANCE(42); END_STATE(); case 29: - ACCEPT_TOKEN(anon_sym_PERCENT); + ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); case 30: - ACCEPT_TOKEN(anon_sym_LBRACK); + ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); case 31: - ACCEPT_TOKEN(anon_sym_COLON); + ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); case 32: - ACCEPT_TOKEN(anon_sym_RBRACK); + ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); case 33: - ACCEPT_TOKEN(anon_sym_DOT); + ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); case 34: ACCEPT_TOKEN(anon_sym_DOT); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(54); END_STATE(); case 35: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_DOT); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61); END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '.') ADVANCE(11); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53); END_STATE(); case 37: - ACCEPT_TOKEN(anon_sym_PLUS); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '.') ADVANCE(13); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(60); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_PIPE_PIPE); + ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_AMP_AMP); + ACCEPT_TOKEN(anon_sym_PIPE_PIPE); END_STATE(); case 40: - ACCEPT_TOKEN(anon_sym_EQ_EQ); + ACCEPT_TOKEN(anon_sym_AMP_AMP); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_BANG_EQ); + ACCEPT_TOKEN(anon_sym_EQ_EQ); END_STATE(); case 42: - ACCEPT_TOKEN(anon_sym_LT); - if (lookahead == '=') ADVANCE(44); + ACCEPT_TOKEN(anon_sym_BANG_EQ); END_STATE(); case 43: - ACCEPT_TOKEN(anon_sym_GT); + ACCEPT_TOKEN(anon_sym_LT); if (lookahead == '=') ADVANCE(45); END_STATE(); case 44: - ACCEPT_TOKEN(anon_sym_LT_EQ); + ACCEPT_TOKEN(anon_sym_GT); + if (lookahead == '=') ADVANCE(46); END_STATE(); case 45: - ACCEPT_TOKEN(anon_sym_GT_EQ); + ACCEPT_TOKEN(anon_sym_LT_EQ); END_STATE(); case 46: + ACCEPT_TOKEN(anon_sym_GT_EQ); + END_STATE(); + case 47: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(7); - if (lookahead == '/') ADVANCE(57); + if (lookahead == '/') ADVANCE(64); END_STATE(); - case 47: + case 48: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 48: + case 49: ACCEPT_TOKEN(anon_sym_QMARK); END_STATE(); - case 49: + case 50: ACCEPT_TOKEN(sym_identifier); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(49); - END_STATE(); - case 50: - ACCEPT_TOKEN(anon_sym_DOLLAR); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(50); END_STATE(); case 51: - ACCEPT_TOKEN(sym_string); + ACCEPT_TOKEN(anon_sym_DOLLAR); END_STATE(); case 52: - ACCEPT_TOKEN(sym_string); - if (lookahead == '"') ADVANCE(51); - if (lookahead == '\\') ADVANCE(3); - if (lookahead != 0) ADVANCE(2); + ACCEPT_TOKEN(anon_sym_DQUOTE); END_STATE(); case 53: - ACCEPT_TOKEN(sym_decimal); - if (lookahead == '.') ADVANCE(11); - if (lookahead == 'e') ADVANCE(8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(53); + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead == '\n') ADVANCE(58); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(53); END_STATE(); case 54: - ACCEPT_TOKEN(sym_float); - if (lookahead == 'e') ADVANCE(8); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(54); + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead == '*') ADVANCE(56); + if (lookahead == '/') ADVANCE(53); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(58); END_STATE(); case 55: - ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(55); + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead == '*') ADVANCE(55); + if (lookahead == '/') ADVANCE(58); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(56); END_STATE(); case 56: - ACCEPT_TOKEN(sym_comment); + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead == '*') ADVANCE(55); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(56); END_STATE(); case 57: - ACCEPT_TOKEN(sym_comment); - if (lookahead == '\\') ADVANCE(13); + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead == '/') ADVANCE(54); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') ADVANCE(57); if (lookahead != 0 && - lookahead != '\n') ADVANCE(57); + lookahead != '"' && + lookahead != '\\') ADVANCE(58); END_STATE(); case 58: + ACCEPT_TOKEN(aux_sym_string_token1); + if (lookahead != 0 && + lookahead != '"' && + lookahead != '\\') ADVANCE(58); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_BSLASH); + END_STATE(); + case 60: + ACCEPT_TOKEN(sym_decimal); + if (lookahead == '.') ADVANCE(13); + if (lookahead == 'e') ADVANCE(8); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(60); + END_STATE(); + case 61: + ACCEPT_TOKEN(sym_float); + if (lookahead == 'e') ADVANCE(8); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(61); + END_STATE(); + case 62: + ACCEPT_TOKEN(sym_float); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(62); + END_STATE(); + case 63: + ACCEPT_TOKEN(sym_comment); + END_STATE(); + case 64: ACCEPT_TOKEN(sym_comment); if (lookahead != 0 && - lookahead != '\\') ADVANCE(57); - if (lookahead == '\\') ADVANCE(13); + lookahead != '\n') ADVANCE(64); END_STATE(); default: return false; @@ -1523,18 +1619,18 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == 'a') ADVANCE(1); - if (lookahead == 'e') ADVANCE(2); - if (lookahead == 'f') ADVANCE(3); - if (lookahead == 'i') ADVANCE(4); - if (lookahead == 'l') ADVANCE(5); - if (lookahead == 'm') ADVANCE(6); - if (lookahead == 't') ADVANCE(7); - if (lookahead == 'u') ADVANCE(8); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(0) + ADVANCE_MAP( + 'a', 1, + 'e', 2, + 'f', 3, + 'i', 4, + 'l', 5, + 'm', 6, + 't', 7, + 'u', 8, + ); + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(0); END_STATE(); case 1: if (lookahead == 's') ADVANCE(9); @@ -1766,160 +1862,160 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { static const TSLexMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 0}, - [2] = {.lex_state = 1}, - [3] = {.lex_state = 1}, - [4] = {.lex_state = 1}, - [5] = {.lex_state = 1}, - [6] = {.lex_state = 1}, - [7] = {.lex_state = 1}, - [8] = {.lex_state = 1}, - [9] = {.lex_state = 14}, - [10] = {.lex_state = 14}, - [11] = {.lex_state = 14}, - [12] = {.lex_state = 14}, - [13] = {.lex_state = 14}, - [14] = {.lex_state = 14}, - [15] = {.lex_state = 1}, - [16] = {.lex_state = 14}, - [17] = {.lex_state = 14}, - [18] = {.lex_state = 14}, - [19] = {.lex_state = 14}, - [20] = {.lex_state = 14}, - [21] = {.lex_state = 14}, - [22] = {.lex_state = 14}, - [23] = {.lex_state = 14}, - [24] = {.lex_state = 14}, - [25] = {.lex_state = 14}, - [26] = {.lex_state = 14}, - [27] = {.lex_state = 14}, - [28] = {.lex_state = 14}, - [29] = {.lex_state = 14}, - [30] = {.lex_state = 14}, - [31] = {.lex_state = 14}, - [32] = {.lex_state = 14}, - [33] = {.lex_state = 0}, - [34] = {.lex_state = 14}, - [35] = {.lex_state = 14}, - [36] = {.lex_state = 14}, - [37] = {.lex_state = 0}, - [38] = {.lex_state = 14}, - [39] = {.lex_state = 14}, - [40] = {.lex_state = 14}, - [41] = {.lex_state = 14}, - [42] = {.lex_state = 14}, - [43] = {.lex_state = 14}, - [44] = {.lex_state = 14}, - [45] = {.lex_state = 1}, - [46] = {.lex_state = 0}, - [47] = {.lex_state = 0}, - [48] = {.lex_state = 0}, + [1] = {.lex_state = 15}, + [2] = {.lex_state = 15}, + [3] = {.lex_state = 15}, + [4] = {.lex_state = 15}, + [5] = {.lex_state = 15}, + [6] = {.lex_state = 15}, + [7] = {.lex_state = 15}, + [8] = {.lex_state = 15}, + [9] = {.lex_state = 15}, + [10] = {.lex_state = 15}, + [11] = {.lex_state = 15}, + [12] = {.lex_state = 15}, + [13] = {.lex_state = 15}, + [14] = {.lex_state = 15}, + [15] = {.lex_state = 15}, + [16] = {.lex_state = 15}, + [17] = {.lex_state = 15}, + [18] = {.lex_state = 15}, + [19] = {.lex_state = 15}, + [20] = {.lex_state = 15}, + [21] = {.lex_state = 15}, + [22] = {.lex_state = 15}, + [23] = {.lex_state = 15}, + [24] = {.lex_state = 15}, + [25] = {.lex_state = 15}, + [26] = {.lex_state = 15}, + [27] = {.lex_state = 15}, + [28] = {.lex_state = 15}, + [29] = {.lex_state = 15}, + [30] = {.lex_state = 15}, + [31] = {.lex_state = 15}, + [32] = {.lex_state = 15}, + [33] = {.lex_state = 15}, + [34] = {.lex_state = 15}, + [35] = {.lex_state = 15}, + [36] = {.lex_state = 15}, + [37] = {.lex_state = 15}, + [38] = {.lex_state = 15}, + [39] = {.lex_state = 15}, + [40] = {.lex_state = 15}, + [41] = {.lex_state = 15}, + [42] = {.lex_state = 15}, + [43] = {.lex_state = 15}, + [44] = {.lex_state = 15}, + [45] = {.lex_state = 15}, + [46] = {.lex_state = 15}, + [47] = {.lex_state = 15}, + [48] = {.lex_state = 1}, [49] = {.lex_state = 1}, [50] = {.lex_state = 1}, - [51] = {.lex_state = 14}, + [51] = {.lex_state = 1}, [52] = {.lex_state = 1}, - [53] = {.lex_state = 1}, - [54] = {.lex_state = 1}, - [55] = {.lex_state = 1}, - [56] = {.lex_state = 1}, - [57] = {.lex_state = 1}, - [58] = {.lex_state = 1}, - [59] = {.lex_state = 1}, - [60] = {.lex_state = 1}, - [61] = {.lex_state = 1}, - [62] = {.lex_state = 1}, - [63] = {.lex_state = 1}, - [64] = {.lex_state = 1}, - [65] = {.lex_state = 1}, - [66] = {.lex_state = 1}, - [67] = {.lex_state = 1}, - [68] = {.lex_state = 1}, - [69] = {.lex_state = 1}, - [70] = {.lex_state = 1}, - [71] = {.lex_state = 1}, - [72] = {.lex_state = 1}, - [73] = {.lex_state = 1}, - [74] = {.lex_state = 1}, - [75] = {.lex_state = 1}, - [76] = {.lex_state = 1}, - [77] = {.lex_state = 1}, - [78] = {.lex_state = 1}, - [79] = {.lex_state = 1}, - [80] = {.lex_state = 1}, - [81] = {.lex_state = 1}, - [82] = {.lex_state = 0}, - [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, - [85] = {.lex_state = 0}, - [86] = {.lex_state = 0}, - [87] = {.lex_state = 0}, - [88] = {.lex_state = 0}, - [89] = {.lex_state = 0}, - [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, - [92] = {.lex_state = 1}, - [93] = {.lex_state = 1}, - [94] = {.lex_state = 1}, - [95] = {.lex_state = 1}, - [96] = {.lex_state = 1}, - [97] = {.lex_state = 1}, - [98] = {.lex_state = 1}, - [99] = {.lex_state = 1}, - [100] = {.lex_state = 1}, - [101] = {.lex_state = 1}, - [102] = {.lex_state = 1}, - [103] = {.lex_state = 1}, - [104] = {.lex_state = 14}, - [105] = {.lex_state = 14}, - [106] = {.lex_state = 14}, - [107] = {.lex_state = 14}, - [108] = {.lex_state = 14}, - [109] = {.lex_state = 14}, - [110] = {.lex_state = 0}, - [111] = {.lex_state = 14}, - [112] = {.lex_state = 14}, - [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 0}, - [116] = {.lex_state = 0}, - [117] = {.lex_state = 0}, - [118] = {.lex_state = 14}, - [119] = {.lex_state = 14}, - [120] = {.lex_state = 14}, - [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, - [124] = {.lex_state = 0}, - [125] = {.lex_state = 0}, - [126] = {.lex_state = 14}, - [127] = {.lex_state = 14}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 14}, - [130] = {.lex_state = 14}, - [131] = {.lex_state = 14}, - [132] = {.lex_state = 0}, - [133] = {.lex_state = 14}, - [134] = {.lex_state = 14}, - [135] = {.lex_state = 14}, - [136] = {.lex_state = 14}, - [137] = {.lex_state = 14}, - [138] = {.lex_state = 0}, - [139] = {.lex_state = 1}, - [140] = {.lex_state = 1}, - [141] = {.lex_state = 1}, - [142] = {.lex_state = 1}, - [143] = {.lex_state = 1}, - [144] = {.lex_state = 1}, - [145] = {.lex_state = 1}, - [146] = {.lex_state = 1}, - [147] = {.lex_state = 0}, - [148] = {.lex_state = 1}, - [149] = {.lex_state = 1}, - [150] = {.lex_state = 0}, - [151] = {.lex_state = 0}, - [152] = {.lex_state = 0}, - [153] = {.lex_state = 0}, - [154] = {.lex_state = 0}, + [53] = {.lex_state = 15}, + [54] = {.lex_state = 15}, + [55] = {.lex_state = 15}, + [56] = {.lex_state = 15}, + [57] = {.lex_state = 15}, + [58] = {.lex_state = 15}, + [59] = {.lex_state = 15}, + [60] = {.lex_state = 15}, + [61] = {.lex_state = 15}, + [62] = {.lex_state = 15}, + [63] = {.lex_state = 15}, + [64] = {.lex_state = 15}, + [65] = {.lex_state = 15}, + [66] = {.lex_state = 15}, + [67] = {.lex_state = 15}, + [68] = {.lex_state = 15}, + [69] = {.lex_state = 15}, + [70] = {.lex_state = 15}, + [71] = {.lex_state = 15}, + [72] = {.lex_state = 15}, + [73] = {.lex_state = 15}, + [74] = {.lex_state = 15}, + [75] = {.lex_state = 2}, + [76] = {.lex_state = 2}, + [77] = {.lex_state = 2}, + [78] = {.lex_state = 2}, + [79] = {.lex_state = 2}, + [80] = {.lex_state = 2}, + [81] = {.lex_state = 2}, + [82] = {.lex_state = 2}, + [83] = {.lex_state = 2}, + [84] = {.lex_state = 2}, + [85] = {.lex_state = 2}, + [86] = {.lex_state = 2}, + [87] = {.lex_state = 2}, + [88] = {.lex_state = 2}, + [89] = {.lex_state = 2}, + [90] = {.lex_state = 2}, + [91] = {.lex_state = 2}, + [92] = {.lex_state = 2}, + [93] = {.lex_state = 2}, + [94] = {.lex_state = 2}, + [95] = {.lex_state = 2}, + [96] = {.lex_state = 2}, + [97] = {.lex_state = 2}, + [98] = {.lex_state = 2}, + [99] = {.lex_state = 2}, + [100] = {.lex_state = 2}, + [101] = {.lex_state = 2}, + [102] = {.lex_state = 2}, + [103] = {.lex_state = 2}, + [104] = {.lex_state = 2}, + [105] = {.lex_state = 2}, + [106] = {.lex_state = 2}, + [107] = {.lex_state = 2}, + [108] = {.lex_state = 2}, + [109] = {.lex_state = 2}, + [110] = {.lex_state = 2}, + [111] = {.lex_state = 15}, + [112] = {.lex_state = 2}, + [113] = {.lex_state = 15}, + [114] = {.lex_state = 15}, + [115] = {.lex_state = 2}, + [116] = {.lex_state = 15}, + [117] = {.lex_state = 2}, + [118] = {.lex_state = 15}, + [119] = {.lex_state = 15}, + [120] = {.lex_state = 15}, + [121] = {.lex_state = 15}, + [122] = {.lex_state = 15}, + [123] = {.lex_state = 2}, + [124] = {.lex_state = 2}, + [125] = {.lex_state = 15}, + [126] = {.lex_state = 15}, + [127] = {.lex_state = 15}, + [128] = {.lex_state = 2}, + [129] = {.lex_state = 2}, + [130] = {.lex_state = 15}, + [131] = {.lex_state = 2}, + [132] = {.lex_state = 15}, + [133] = {.lex_state = 15}, + [134] = {.lex_state = 2}, + [135] = {.lex_state = 2}, + [136] = {.lex_state = 2}, + [137] = {.lex_state = 2}, + [138] = {.lex_state = 2}, + [139] = {.lex_state = 2}, + [140] = {.lex_state = 2}, + [141] = {.lex_state = 2}, + [142] = {.lex_state = 15}, + [143] = {.lex_state = 15}, + [144] = {.lex_state = 15}, + [145] = {.lex_state = 15}, + [146] = {.lex_state = 15}, + [147] = {.lex_state = 15}, + [148] = {.lex_state = 15}, + [149] = {.lex_state = 15}, + [150] = {.lex_state = 15}, + [151] = {.lex_state = 15}, + [152] = {.lex_state = 15}, + [153] = {.lex_state = 15}, + [154] = {.lex_state = 15}, [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, [157] = {.lex_state = 0}, @@ -1933,12 +2029,12 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [165] = {.lex_state = 0}, [166] = {.lex_state = 0}, [167] = {.lex_state = 0}, - [168] = {.lex_state = 0}, + [168] = {.lex_state = 3}, [169] = {.lex_state = 0}, [170] = {.lex_state = 0}, [171] = {.lex_state = 0}, - [172] = {.lex_state = 0}, - [173] = {.lex_state = 0}, + [172] = {.lex_state = 3}, + [173] = {.lex_state = 3}, [174] = {.lex_state = 0}, [175] = {.lex_state = 0}, [176] = {.lex_state = 0}, @@ -1981,11 +2077,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [213] = {.lex_state = 0}, [214] = {.lex_state = 0}, [215] = {.lex_state = 0}, - [216] = {.lex_state = 1}, + [216] = {.lex_state = 0}, [217] = {.lex_state = 0}, - [218] = {.lex_state = 1}, + [218] = {.lex_state = 0}, [219] = {.lex_state = 0}, [220] = {.lex_state = 0}, + [221] = {.lex_state = 15}, + [222] = {.lex_state = 0}, + [223] = {.lex_state = 15}, + [224] = {.lex_state = 0}, + [225] = {.lex_state = 0}, + [226] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2033,7 +2135,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_QMARK] = ACTIONS(1), [anon_sym_assert] = ACTIONS(1), [anon_sym_DOLLAR] = ACTIONS(1), - [sym_string] = ACTIONS(1), + [anon_sym_DQUOTE] = ACTIONS(1), + [anon_sym_BSLASH] = ACTIONS(1), [sym_decimal] = ACTIONS(1), [sym_float] = ACTIONS(1), [anon_sym_true] = ACTIONS(1), @@ -2042,29 +2145,29 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [1] = { - [sym_source_file] = STATE(210), - [sym__item] = STATE(33), - [sym_module_declaration] = STATE(33), - [sym_function_declaration] = STATE(33), - [sym__statement] = STATE(33), - [sym_include_statement] = STATE(33), - [sym_use_statement] = STATE(33), - [sym_assignment] = STATE(212), - [sym_union_block] = STATE(33), - [sym_for_block] = STATE(33), - [sym_intersection_for_block] = STATE(33), - [sym_let_block] = STATE(33), - [sym_assign_block] = STATE(33), - [sym_if_block] = STATE(33), - [sym_modifier_chain] = STATE(33), - [sym_modifier] = STATE(84), - [sym_transform_chain] = STATE(33), - [sym_module_call] = STATE(85), - [sym__assert_clause] = STATE(86), - [sym_assert_statement] = STATE(33), - [sym_special_variable] = STATE(22), - [sym__variable_name] = STATE(213), - [aux_sym_source_file_repeat1] = STATE(33), + [sym_source_file] = STATE(215), + [sym__item] = STATE(10), + [sym_module_declaration] = STATE(10), + [sym_function_item] = STATE(10), + [sym__statement] = STATE(10), + [sym_include_statement] = STATE(10), + [sym_use_statement] = STATE(10), + [sym_assignment] = STATE(216), + [sym_union_block] = STATE(10), + [sym_for_block] = STATE(10), + [sym_intersection_for_block] = STATE(10), + [sym_let_block] = STATE(10), + [sym_assign_block] = STATE(10), + [sym_if_block] = STATE(10), + [sym_modifier_chain] = STATE(10), + [sym_modifier] = STATE(59), + [sym_transform_chain] = STATE(10), + [sym_module_call] = STATE(60), + [sym__assert_clause] = STATE(54), + [sym_assert_statement] = STATE(10), + [sym_special_variable] = STATE(78), + [sym__variable_name] = STATE(214), + [aux_sym_source_file_repeat1] = STATE(10), [ts_builtin_sym_end] = ACTIONS(5), [sym_identifier] = ACTIONS(7), [anon_sym_SEMI] = ACTIONS(9), @@ -2121,14 +2224,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(112), 1, + STATE(78), 1, + sym_special_variable, + STATE(107), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2136,20 +2239,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(198), 3, + STATE(182), 3, sym__list_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2161,7 +2265,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [98] = 26, + [99] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2191,16 +2295,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, ACTIONS(69), 1, anon_sym_RBRACK, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(112), 1, + STATE(78), 1, + sym_special_variable, + STATE(117), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2208,20 +2312,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(198), 3, + STATE(211), 3, sym__list_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2233,7 +2338,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [196] = 26, + [198] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2263,16 +2368,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, ACTIONS(71), 1, anon_sym_RBRACK, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(107), 1, + STATE(78), 1, + sym_special_variable, + STATE(117), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2280,20 +2385,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(178), 3, + STATE(211), 3, sym__list_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2305,7 +2411,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [294] = 25, + [297] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2333,16 +2439,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, ACTIONS(73), 1, anon_sym_LPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(104), 1, + STATE(78), 1, + sym_special_variable, + STATE(105), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2350,20 +2456,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(163), 3, + STATE(174), 3, sym__comprehension_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2375,7 +2482,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [389] = 25, + [393] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2403,16 +2510,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, ACTIONS(73), 1, anon_sym_LPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(104), 1, + STATE(78), 1, + sym_special_variable, + STATE(105), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2420,20 +2527,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(164), 3, + STATE(175), 3, sym__comprehension_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2445,7 +2553,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [484] = 25, + [489] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2473,16 +2581,16 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, ACTIONS(73), 1, anon_sym_LPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(104), 1, + STATE(78), 1, + sym_special_variable, + STATE(105), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2490,20 +2598,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(162), 3, + STATE(176), 3, sym__comprehension_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2515,7 +2624,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [579] = 25, + [585] = 25, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -2545,14 +2654,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(112), 1, + STATE(78), 1, + sym_special_variable, + STATE(117), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2560,20 +2669,21 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(198), 3, + STATE(211), 3, sym__list_cell, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2585,360 +2695,26 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [674] = 17, + [681] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(75), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOLLAR, - ACTIONS(77), 13, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - [752] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, + ACTIONS(39), 1, anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - STATE(30), 1, - sym_arguments, - ACTIONS(107), 16, - anon_sym_module, + ACTIONS(41), 1, anon_sym_function, - anon_sym_include, - anon_sym_use, + ACTIONS(43), 1, anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, + ACTIONS(47), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(105), 22, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [810] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(107), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(105), 21, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_QMARK, - anon_sym_DOLLAR, - [870] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(111), 15, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_assert, - sym_identifier, - ACTIONS(109), 19, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_QMARK, - anon_sym_DOLLAR, - [934] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(113), 10, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOLLAR, - ACTIONS(115), 13, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_assert, - sym_identifier, - [1012] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(107), 15, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_assert, - sym_identifier, - ACTIONS(105), 17, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1078] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(43), 1, - anon_sym_for, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(47), 1, - anon_sym_if, - ACTIONS(49), 1, + ACTIONS(49), 1, anon_sym_BANG, ACTIONS(51), 1, anon_sym_LBRACK, @@ -2949,14 +2725,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(135), 1, + STATE(78), 1, + sym_special_variable, + STATE(134), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -2964,19 +2740,20 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, + STATE(171), 2, sym_for_clause, sym_if_clause, - STATE(211), 2, + STATE(220), 2, sym_each, sym_list_comprehension, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -2988,1464 +2765,1406 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [1172] = 7, + [776] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - STATE(30), 1, - sym_arguments, - ACTIONS(111), 16, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, anon_sym_module, + ACTIONS(13), 1, anon_sym_function, + ACTIONS(15), 1, anon_sym_include, + ACTIONS(17), 1, anon_sym_use, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, anon_sym_for, + ACTIONS(23), 1, anon_sym_intersection_for, + ACTIONS(25), 1, anon_sym_let, + ACTIONS(27), 1, anon_sym_assign, + ACTIONS(29), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, - sym_identifier, - ACTIONS(109), 22, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(75), 1, ts_builtin_sym_end, + ACTIONS(77), 1, anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + STATE(78), 1, + sym_special_variable, + STATE(214), 1, + sym__variable_name, + STATE(216), 1, + sym_assignment, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1230] = 17, + STATE(11), 16, + sym__item, + sym_module_declaration, + sym_function_item, + sym__statement, + sym_include_statement, + sym_use_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + aux_sym_source_file_repeat1, + [867] = 24, ACTIONS(3), 1, sym_comment, ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(117), 10, ts_builtin_sym_end, + ACTIONS(81), 1, + sym_identifier, + ACTIONS(84), 1, anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOLLAR, - ACTIONS(119), 13, + ACTIONS(87), 1, anon_sym_module, + ACTIONS(90), 1, anon_sym_function, + ACTIONS(93), 1, anon_sym_include, + ACTIONS(96), 1, anon_sym_use, + ACTIONS(99), 1, + anon_sym_LBRACE, + ACTIONS(102), 1, anon_sym_for, + ACTIONS(105), 1, anon_sym_intersection_for, + ACTIONS(108), 1, anon_sym_let, + ACTIONS(111), 1, anon_sym_assign, + ACTIONS(114), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, + ACTIONS(120), 1, anon_sym_assert, - sym_identifier, - [1308] = 17, + ACTIONS(123), 1, + anon_sym_DOLLAR, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + STATE(78), 1, + sym_special_variable, + STATE(214), 1, + sym__variable_name, + STATE(216), 1, + sym_assignment, + ACTIONS(117), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(11), 16, + sym__item, + sym_module_declaration, + sym_function_item, + sym__statement, + sym_include_statement, + sym_use_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + aux_sym_source_file_repeat1, + [958] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, + sym_identifier, + ACTIONS(39), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(43), 1, + anon_sym_for, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(47), 1, + anon_sym_if, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(121), 10, - ts_builtin_sym_end, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(106), 1, + sym_expression, + STATE(169), 1, + sym_list_comprehension, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(171), 2, + sym_for_clause, + sym_if_clause, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [1049] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(126), 1, + sym_identifier, + ACTIONS(129), 1, anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOLLAR, - ACTIONS(123), 13, + ACTIONS(132), 1, anon_sym_module, + ACTIONS(135), 1, anon_sym_function, + ACTIONS(138), 1, anon_sym_include, - anon_sym_use, + ACTIONS(141), 1, + anon_sym_LBRACE, + ACTIONS(144), 1, + anon_sym_RBRACE, + ACTIONS(146), 1, anon_sym_for, + ACTIONS(149), 1, anon_sym_intersection_for, + ACTIONS(152), 1, anon_sym_let, + ACTIONS(155), 1, anon_sym_assign, + ACTIONS(158), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, + ACTIONS(164), 1, anon_sym_assert, - sym_identifier, - [1386] = 3, + ACTIONS(167), 1, + anon_sym_DOLLAR, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + STATE(78), 1, + sym_special_variable, + STATE(214), 1, + sym__variable_name, + STATE(216), 1, + sym_assignment, + ACTIONS(161), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(13), 15, + sym__item, + sym_module_declaration, + sym_function_item, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + aux_sym_union_block_repeat1, + [1136] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(127), 17, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, anon_sym_module, + ACTIONS(13), 1, anon_sym_function, - anon_sym_EQ, + ACTIONS(15), 1, anon_sym_include, - anon_sym_use, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, anon_sym_for, + ACTIONS(23), 1, anon_sym_intersection_for, + ACTIONS(25), 1, anon_sym_let, + ACTIONS(27), 1, anon_sym_assign, + ACTIONS(29), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, - sym_identifier, - ACTIONS(125), 25, - ts_builtin_sym_end, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(170), 1, anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, + ACTIONS(172), 1, anon_sym_RBRACE, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + STATE(78), 1, + sym_special_variable, + STATE(214), 1, + sym__variable_name, + STATE(216), 1, + sym_assignment, + ACTIONS(31), 4, anon_sym_STAR, + anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1436] = 13, + STATE(13), 15, + sym__item, + sym_module_declaration, + sym_function_item, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + aux_sym_union_block_repeat1, + [1223] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(107), 13, + ACTIONS(7), 1, + sym_identifier, + ACTIONS(11), 1, anon_sym_module, + ACTIONS(13), 1, anon_sym_function, + ACTIONS(15), 1, anon_sym_include, - anon_sym_use, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, anon_sym_for, + ACTIONS(23), 1, anon_sym_intersection_for, + ACTIONS(25), 1, anon_sym_let, + ACTIONS(27), 1, anon_sym_assign, + ACTIONS(29), 1, anon_sym_if, - anon_sym_else, - anon_sym_BANG, + ACTIONS(33), 1, anon_sym_assert, - sym_identifier, - ACTIONS(105), 15, - ts_builtin_sym_end, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(174), 1, anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, + ACTIONS(176), 1, anon_sym_RBRACE, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + STATE(78), 1, + sym_special_variable, + STATE(214), 1, + sym__variable_name, + STATE(216), 1, + sym_assignment, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1506] = 14, + anon_sym_PERCENT, + STATE(14), 15, + sym__item, + sym_module_declaration, + sym_function_item, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + aux_sym_union_block_repeat1, + [1310] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(105), 13, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_QMARK, - anon_sym_DOLLAR, - ACTIONS(107), 13, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - [1578] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(131), 17, - anon_sym_module, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_function, - anon_sym_EQ, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, + ACTIONS(49), 1, anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(129), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1628] = 15, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + ACTIONS(178), 1, + anon_sym_RPAREN, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(109), 1, + sym_expression, + STATE(128), 1, + sym__variable_name, + STATE(186), 1, + sym_assignment, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 10, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + [1396] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, + sym_identifier, + ACTIONS(39), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(105), 12, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + ACTIONS(180), 1, anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_PIPE_PIPE, - anon_sym_QMARK, - anon_sym_DOLLAR, - ACTIONS(107), 13, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_assert, - sym_identifier, - [1702] = 10, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(112), 1, + sym_expression, + STATE(128), 1, + sym__variable_name, + STATE(204), 1, + sym_assignment, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 10, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + [1482] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, + sym_identifier, + ACTIONS(39), 1, anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(107), 15, - anon_sym_module, + ACTIONS(41), 1, anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, + ACTIONS(49), 1, anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_assert, - sym_identifier, - ACTIONS(105), 19, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_COLON, - anon_sym_RBRACK, + ACTIONS(51), 1, + anon_sym_LBRACK, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1766] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + ACTIONS(182), 1, + anon_sym_RPAREN, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(112), 1, + sym_expression, + STATE(128), 1, + sym__variable_name, + STATE(204), 1, + sym_assignment, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 10, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + [1568] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(135), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(133), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1815] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + ACTIONS(184), 1, + anon_sym_RPAREN, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(123), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [1649] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(139), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(137), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1864] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(112), 1, + sym_expression, + STATE(128), 1, + sym__variable_name, + STATE(204), 1, + sym_assignment, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 10, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + [1732] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(143), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(141), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1913] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(147), 16, - anon_sym_module, + ACTIONS(41), 1, anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, + ACTIONS(49), 1, anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(145), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [1962] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(108), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [1810] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(151), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(149), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2011] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(83), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [1888] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(155), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(153), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2060] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(84), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [1966] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(159), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(157), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2109] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(85), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2044] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(163), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(161), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2158] = 24, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(86), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2122] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_module, - ACTIONS(13), 1, - anon_sym_function, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(17), 1, - anon_sym_use, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, - anon_sym_for, - ACTIONS(23), 1, - anon_sym_intersection_for, - ACTIONS(25), 1, - anon_sym_let, - ACTIONS(27), 1, - anon_sym_assign, - ACTIONS(29), 1, - anon_sym_if, ACTIONS(33), 1, anon_sym_assert, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(165), 1, - ts_builtin_sym_end, - ACTIONS(167), 1, - anon_sym_SEMI, - STATE(22), 1, - sym_special_variable, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - STATE(212), 1, - sym_assignment, - STATE(213), 1, - sym__variable_name, - ACTIONS(31), 4, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - STATE(37), 16, - sym__item, - sym_module_declaration, - sym_function_declaration, - sym__statement, - sym_include_statement, - sym_use_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - aux_sym_source_file_repeat1, - [2249] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(171), 16, - anon_sym_module, + ACTIONS(37), 1, + sym_identifier, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, + ACTIONS(49), 1, anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(169), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2298] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(87), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2200] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(175), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(173), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2347] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(75), 1, + sym_expression, + STATE(78), 1, + sym_special_variable, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2278] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(179), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(177), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2396] = 24, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(139), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2356] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(181), 1, - ts_builtin_sym_end, - ACTIONS(183), 1, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(186), 1, - anon_sym_SEMI, - ACTIONS(189), 1, - anon_sym_module, - ACTIONS(192), 1, - anon_sym_function, - ACTIONS(195), 1, - anon_sym_include, - ACTIONS(198), 1, - anon_sym_use, - ACTIONS(201), 1, - anon_sym_LBRACE, - ACTIONS(204), 1, - anon_sym_for, - ACTIONS(207), 1, - anon_sym_intersection_for, - ACTIONS(210), 1, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, anon_sym_let, - ACTIONS(213), 1, - anon_sym_assign, - ACTIONS(216), 1, - anon_sym_if, - ACTIONS(222), 1, - anon_sym_assert, - ACTIONS(225), 1, - anon_sym_DOLLAR, - STATE(22), 1, - sym_special_variable, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, + anon_sym_LBRACK, + ACTIONS(57), 1, + anon_sym_DASH, + ACTIONS(59), 1, + anon_sym_PLUS, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, sym__assert_clause, - STATE(212), 1, - sym_assignment, - STATE(213), 1, + STATE(78), 1, + sym_special_variable, + STATE(124), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, sym__variable_name, - ACTIONS(219), 4, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - STATE(37), 16, - sym__item, - sym_module_declaration, - sym_function_declaration, - sym__statement, - sym_include_statement, - sym_use_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - aux_sym_source_file_repeat1, - [2487] = 3, + [2434] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(230), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(228), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2536] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(77), 1, + sym_expression, + STATE(78), 1, + sym_special_variable, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2512] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(234), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(232), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(41), 1, + anon_sym_function, + ACTIONS(45), 1, + anon_sym_let, + ACTIONS(49), 1, + anon_sym_BANG, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2585] = 3, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(134), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2590] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(238), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, + ACTIONS(33), 1, anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(236), 25, - ts_builtin_sym_end, - anon_sym_SEMI, + ACTIONS(39), 1, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2634] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(242), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(240), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2683] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(246), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(244), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2732] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(250), 16, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(248), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2781] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(254), 16, - anon_sym_module, + ACTIONS(41), 1, anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, + ACTIONS(45), 1, anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, + ACTIONS(49), 1, anon_sym_BANG, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - anon_sym_assert, - sym_identifier, - ACTIONS(252), 25, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_POUND, - anon_sym_PERCENT, + ACTIONS(51), 1, anon_sym_LBRACK, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_DOT, + ACTIONS(57), 1, anon_sym_DASH, + ACTIONS(59), 1, anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - anon_sym_DOLLAR, - [2830] = 24, + ACTIONS(61), 1, + anon_sym_DQUOTE, + ACTIONS(67), 1, + sym_undef, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(115), 1, + sym_expression, + ACTIONS(63), 2, + sym_decimal, + sym_float, + ACTIONS(65), 2, + anon_sym_true, + anon_sym_false, + STATE(99), 6, + sym_function_lit, + sym_range, + sym_list, + sym_string, + sym_number, + sym_boolean, + STATE(100), 11, + sym_parenthesized_expression, + sym_let_expression, + sym_literal, + sym_function_call, + sym_index_expression, + sym_dot_index_expression, + sym_unary_expression, + sym_binary_expression, + sym_ternary_expression, + sym_assert_expression, + sym__variable_name, + [2668] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -4458,12 +4177,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(41), 1, anon_sym_function, - ACTIONS(43), 1, - anon_sym_for, ACTIONS(45), 1, anon_sym_let, - ACTIONS(47), 1, - anon_sym_if, ACTIONS(49), 1, anon_sym_BANG, ACTIONS(51), 1, @@ -4473,33 +4188,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(105), 1, + STATE(78), 1, + sym_special_variable, + STATE(81), 1, sym_expression, - STATE(167), 1, - sym_list_comprehension, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(165), 2, - sym_for_clause, - sym_if_clause, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -4511,212 +4222,20 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [2920] = 23, + [2746] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(256), 1, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(35), 1, + anon_sym_DOLLAR, + ACTIONS(37), 1, sym_identifier, - ACTIONS(259), 1, - anon_sym_SEMI, - ACTIONS(262), 1, - anon_sym_module, - ACTIONS(265), 1, + ACTIONS(39), 1, + anon_sym_LPAREN, + ACTIONS(41), 1, anon_sym_function, - ACTIONS(268), 1, - anon_sym_include, - ACTIONS(271), 1, - anon_sym_LBRACE, - ACTIONS(274), 1, - anon_sym_RBRACE, - ACTIONS(276), 1, - anon_sym_for, - ACTIONS(279), 1, - anon_sym_intersection_for, - ACTIONS(282), 1, - anon_sym_let, - ACTIONS(285), 1, - anon_sym_assign, - ACTIONS(288), 1, - anon_sym_if, - ACTIONS(294), 1, - anon_sym_assert, - ACTIONS(297), 1, - anon_sym_DOLLAR, - STATE(22), 1, - sym_special_variable, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - STATE(212), 1, - sym_assignment, - STATE(213), 1, - sym__variable_name, - ACTIONS(291), 4, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - STATE(46), 15, - sym__item, - sym_module_declaration, - sym_function_declaration, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - aux_sym_union_block_repeat1, - [3007] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_module, - ACTIONS(13), 1, - anon_sym_function, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, - anon_sym_for, - ACTIONS(23), 1, - anon_sym_intersection_for, - ACTIONS(25), 1, - anon_sym_let, - ACTIONS(27), 1, - anon_sym_assign, - ACTIONS(29), 1, - anon_sym_if, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(300), 1, - anon_sym_SEMI, - ACTIONS(302), 1, - anon_sym_RBRACE, - STATE(22), 1, - sym_special_variable, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - STATE(212), 1, - sym_assignment, - STATE(213), 1, - sym__variable_name, - ACTIONS(31), 4, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - STATE(48), 15, - sym__item, - sym_module_declaration, - sym_function_declaration, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - aux_sym_union_block_repeat1, - [3094] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(7), 1, - sym_identifier, - ACTIONS(11), 1, - anon_sym_module, - ACTIONS(13), 1, - anon_sym_function, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, - anon_sym_for, - ACTIONS(23), 1, - anon_sym_intersection_for, - ACTIONS(25), 1, - anon_sym_let, - ACTIONS(27), 1, - anon_sym_assign, - ACTIONS(29), 1, - anon_sym_if, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(304), 1, - anon_sym_SEMI, - ACTIONS(306), 1, - anon_sym_RBRACE, - STATE(22), 1, - sym_special_variable, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - STATE(212), 1, - sym_assignment, - STATE(213), 1, - sym__variable_name, - ACTIONS(31), 4, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - STATE(46), 15, - sym__item, - sym_module_declaration, - sym_function_declaration, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - aux_sym_union_block_repeat1, - [3181] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, + ACTIONS(45), 1, anon_sym_let, ACTIONS(49), 1, anon_sym_BANG, @@ -4727,34 +4246,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - ACTIONS(308), 1, - anon_sym_RPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(111), 1, - sym__variable_name, - STATE(118), 1, + STATE(76), 1, sym_expression, - STATE(194), 1, - sym_assignment, + STATE(78), 1, + sym_special_variable, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 10, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -4765,7 +4279,8 @@ static const uint16_t ts_small_parse_table[] = { sym_binary_expression, sym_ternary_expression, sym_assert_expression, - [3266] = 23, + sym__variable_name, + [2824] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -4789,34 +4304,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - ACTIONS(310), 1, - anon_sym_RPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(111), 1, - sym__variable_name, - STATE(118), 1, + STATE(78), 1, + sym_special_variable, + STATE(140), 1, sym_expression, - STATE(194), 1, - sym_assignment, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 10, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -4827,63 +4337,8 @@ static const uint16_t ts_small_parse_table[] = { sym_binary_expression, sym_ternary_expression, sym_assert_expression, - [3351] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(312), 6, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_POUND, - anon_sym_DOLLAR, - ACTIONS(314), 12, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_BANG, - anon_sym_assert, - sym_identifier, - [3424] = 23, + sym__variable_name, + [2902] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -4907,34 +4362,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - ACTIONS(316), 1, - anon_sym_RPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(108), 1, + STATE(78), 1, + sym_special_variable, + STATE(136), 1, sym_expression, - STATE(111), 1, - sym__variable_name, - STATE(191), 1, - sym_assignment, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 10, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -4945,7 +4395,8 @@ static const uint16_t ts_small_parse_table[] = { sym_binary_expression, sym_ternary_expression, sym_assert_expression, - [3509] = 22, + sym__variable_name, + [2980] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -4969,32 +4420,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(111), 1, - sym__variable_name, - STATE(118), 1, + STATE(78), 1, + sym_special_variable, + STATE(131), 1, sym_expression, - STATE(194), 1, - sym_assignment, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 10, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5005,7 +4453,8 @@ static const uint16_t ts_small_parse_table[] = { sym_binary_expression, sym_ternary_expression, sym_assert_expression, - [3591] = 21, + sym__variable_name, + [3058] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5029,16 +4478,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - ACTIONS(318), 1, - anon_sym_RPAREN, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(126), 1, + STATE(78), 1, + sym_special_variable, + STATE(79), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -5046,13 +4493,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5064,7 +4512,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [3671] = 20, + [3136] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5088,28 +4536,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(21), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(89), 1, + sym_expression, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5121,7 +4570,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [3748] = 20, + [3214] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5145,28 +4594,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(17), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(80), 1, + sym_expression, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5178,7 +4628,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [3825] = 20, + [3292] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5202,14 +4652,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(135), 1, + STATE(78), 1, + sym_special_variable, + STATE(138), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -5217,13 +4667,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5235,7 +4686,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [3902] = 20, + [3370] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5259,14 +4710,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(136), 1, + STATE(78), 1, + sym_special_variable, + STATE(110), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -5274,13 +4725,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5292,7 +4744,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [3979] = 20, + [3448] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5316,14 +4768,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(127), 1, + STATE(78), 1, + sym_special_variable, + STATE(137), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -5331,13 +4783,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5349,7 +4802,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [4056] = 20, + [3526] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5373,14 +4826,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, - STATE(120), 1, + STATE(78), 1, + sym_special_variable, + STATE(82), 1, sym_expression, ACTIONS(63), 2, sym_decimal, @@ -5388,13 +4841,14 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5406,7 +4860,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [4133] = 20, + [3604] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5430,28 +4884,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, sym_special_variable, - STATE(24), 1, + STATE(135), 1, sym_expression, - STATE(56), 1, - sym__assert_clause, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5463,7 +4918,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [4210] = 20, + [3682] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5487,28 +4942,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(12), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + STATE(34), 1, sym__assert_clause, + STATE(78), 1, + sym_special_variable, + STATE(129), 1, + sym_expression, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5520,7 +4976,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [4287] = 20, + [3760] = 20, ACTIONS(3), 1, sym_comment, ACTIONS(33), 1, @@ -5544,28 +5000,29 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(59), 1, anon_sym_PLUS, ACTIONS(61), 1, - sym_string, + anon_sym_DQUOTE, ACTIONS(67), 1, sym_undef, - STATE(22), 1, + STATE(34), 1, + sym__assert_clause, + STATE(78), 1, sym_special_variable, - STATE(23), 1, + STATE(141), 1, sym_expression, - STATE(56), 1, - sym__assert_clause, ACTIONS(63), 2, sym_decimal, sym_float, ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, + STATE(99), 6, + sym_function_lit, sym_range, sym_list, + sym_string, sym_number, sym_boolean, - STATE(35), 11, + STATE(100), 11, sym_parenthesized_expression, sym_let_expression, sym_literal, @@ -5577,2122 +5034,2455 @@ static const uint16_t ts_small_parse_table[] = { sym_ternary_expression, sym_assert_expression, sym__variable_name, - [4364] = 20, + [3838] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, + ACTIONS(186), 13, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_BANG, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(188), 22, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(13), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4441] = 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [3881] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, + ACTIONS(190), 13, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_BANG, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(192), 22, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(106), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4518] = 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [3924] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, + ACTIONS(194), 13, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_BANG, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(196), 22, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(109), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4595] = 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [3967] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, + ACTIONS(198), 13, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_BANG, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(200), 22, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(131), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4672] = 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [4010] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, + ACTIONS(202), 13, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_BANG, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(204), 22, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_LBRACE, + anon_sym_STAR, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(130), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4749] = 20, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [4053] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(208), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - STATE(119), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4826] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(114), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4115] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(20), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(210), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4903] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(120), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4177] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(14), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(212), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [4980] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(126), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4239] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(16), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(214), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5057] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(125), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4301] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(10), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(216), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5134] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(133), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4363] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, + ACTIONS(218), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - STATE(133), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5211] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(119), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4425] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(51), 1, - sym_expression, - STATE(56), 1, + ACTIONS(220), 1, + anon_sym_SEMI, + STATE(54), 1, sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5288] = 20, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(116), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4487] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, + ACTIONS(222), 1, + anon_sym_SEMI, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(118), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4549] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, anon_sym_let, - ACTIONS(49), 1, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, + ACTIONS(33), 1, + anon_sym_assert, + ACTIONS(206), 1, + sym_identifier, + ACTIONS(224), 1, + anon_sym_SEMI, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(11), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5365] = 20, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(113), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4611] = 16, ACTIONS(3), 1, sym_comment, + ACTIONS(15), 1, + anon_sym_include, + ACTIONS(19), 1, + anon_sym_LBRACE, + ACTIONS(21), 1, + anon_sym_for, + ACTIONS(23), 1, + anon_sym_intersection_for, + ACTIONS(25), 1, + anon_sym_let, + ACTIONS(27), 1, + anon_sym_assign, + ACTIONS(29), 1, + anon_sym_if, ACTIONS(33), 1, anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, + ACTIONS(206), 1, sym_identifier, - ACTIONS(39), 1, + ACTIONS(226), 1, + anon_sym_SEMI, + STATE(54), 1, + sym__assert_clause, + STATE(59), 1, + sym_modifier, + STATE(60), 1, + sym_module_call, + ACTIONS(31), 4, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + STATE(121), 11, + sym__statement, + sym_include_statement, + sym_union_block, + sym_for_block, + sym_intersection_for_block, + sym_let_block, + sym_assign_block, + sym_if_block, + sym_modifier_chain, + sym_transform_chain, + sym_assert_statement, + [4673] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(230), 12, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_STAR, anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(9), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - ACTIONS(63), 2, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(228), 15, + anon_sym_function, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_DASH, + anon_sym_assert, + sym_identifier, sym_decimal, sym_float, - ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5442] = 20, + sym_undef, + [4708] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, + ACTIONS(234), 11, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, + anon_sym_LBRACE, + anon_sym_STAR, anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(18), 1, - sym_expression, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - ACTIONS(63), 2, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(232), 16, + anon_sym_function, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_each, + anon_sym_DASH, + anon_sym_assert, + sym_identifier, sym_decimal, sym_float, - ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5519] = 20, + sym_undef, + [4743] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, + ACTIONS(238), 11, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, + anon_sym_LBRACE, + anon_sym_STAR, anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(137), 1, - sym_expression, - ACTIONS(63), 2, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(236), 16, + anon_sym_function, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_each, + anon_sym_DASH, + anon_sym_assert, + sym_identifier, sym_decimal, sym_float, - ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5596] = 20, + sym_undef, + [4778] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, - anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, + ACTIONS(242), 12, + anon_sym_SEMI, anon_sym_LPAREN, - ACTIONS(41), 1, - anon_sym_function, - ACTIONS(45), 1, - anon_sym_let, - ACTIONS(49), 1, + anon_sym_EQ, + anon_sym_LBRACE, + anon_sym_STAR, anon_sym_BANG, - ACTIONS(51), 1, + anon_sym_POUND, + anon_sym_PERCENT, anon_sym_LBRACK, - ACTIONS(57), 1, - anon_sym_DASH, - ACTIONS(59), 1, anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(134), 1, - sym_expression, - ACTIONS(63), 2, - sym_decimal, - sym_float, - ACTIONS(65), 2, - anon_sym_true, - anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5673] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(37), 1, - sym_identifier, - ACTIONS(39), 1, - anon_sym_LPAREN, - ACTIONS(41), 1, + anon_sym_DQUOTE, + ACTIONS(240), 15, anon_sym_function, - ACTIONS(45), 1, + anon_sym_include, + anon_sym_for, + anon_sym_intersection_for, anon_sym_let, - ACTIONS(49), 1, - anon_sym_BANG, - ACTIONS(51), 1, - anon_sym_LBRACK, - ACTIONS(57), 1, + anon_sym_assign, + anon_sym_if, anon_sym_DASH, - ACTIONS(59), 1, - anon_sym_PLUS, - ACTIONS(61), 1, - sym_string, - ACTIONS(67), 1, - sym_undef, - STATE(22), 1, - sym_special_variable, - STATE(56), 1, - sym__assert_clause, - STATE(129), 1, - sym_expression, - ACTIONS(63), 2, + anon_sym_assert, + sym_identifier, sym_decimal, sym_float, - ACTIONS(65), 2, anon_sym_true, anon_sym_false, - STATE(25), 5, - sym_function, - sym_range, - sym_list, - sym_number, - sym_boolean, - STATE(35), 11, - sym_parenthesized_expression, - sym_let_expression, - sym_literal, - sym_function_call, - sym_index_expression, - sym_dot_index_expression, - sym_unary_expression, - sym_binary_expression, - sym_ternary_expression, - sym_assert_expression, - sym__variable_name, - [5750] = 16, + sym_undef, + [4813] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(19), 1, + ACTIONS(246), 11, + anon_sym_SEMI, + anon_sym_LPAREN, anon_sym_LBRACE, - ACTIONS(21), 1, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(244), 16, + anon_sym_function, + anon_sym_include, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_each, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(322), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [4848] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(250), 12, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_EQ, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(125), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [5812] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(248), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(324), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [4883] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(254), 12, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_EQ, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(138), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [5874] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(252), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(326), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [4918] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(258), 11, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(113), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [5936] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(256), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(328), 1, - anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [4952] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(262), 11, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(114), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [5998] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(260), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(330), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [4986] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(266), 11, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(116), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6060] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(264), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(332), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [5020] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(270), 11, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(123), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6122] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(268), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(334), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [5054] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(274), 11, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - STATE(110), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6184] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(15), 1, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(272), 15, + anon_sym_function, anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, anon_sym_for, - ACTIONS(23), 1, anon_sym_intersection_for, - ACTIONS(25), 1, anon_sym_let, - ACTIONS(27), 1, anon_sym_assign, - ACTIONS(29), 1, anon_sym_if, - ACTIONS(33), 1, + anon_sym_DASH, anon_sym_assert, - ACTIONS(320), 1, sym_identifier, - ACTIONS(336), 1, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [5088] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + STATE(101), 1, + sym_arguments, + ACTIONS(284), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(276), 18, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5129] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(286), 6, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + [5188] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + STATE(101), 1, + sym_arguments, + ACTIONS(310), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(308), 18, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(314), 4, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(312), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5262] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(316), 6, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + [5321] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(318), 6, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + [5380] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(310), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(308), 15, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_QMARK, + [5427] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(284), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(276), 17, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_QMARK, + [5470] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(284), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(276), 15, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_QMARK, + [5517] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(276), 8, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_PIPE_PIPE, + anon_sym_QMARK, + [5572] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(276), 9, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_QMARK, + [5625] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(276), 11, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_QMARK, + [5676] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + STATE(101), 1, + sym_arguments, + ACTIONS(284), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(276), 13, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_QMARK, + [5725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(322), 4, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(320), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5758] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(324), 6, + anon_sym_SEMI, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_COLON, + anon_sym_RBRACK, + [5817] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(328), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(326), 21, + anon_sym_SEMI, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5849] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(332), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(330), 21, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, - STATE(124), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6246] = 16, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5881] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, - anon_sym_for, - ACTIONS(23), 1, - anon_sym_intersection_for, - ACTIONS(25), 1, - anon_sym_let, - ACTIONS(27), 1, - anon_sym_assign, - ACTIONS(29), 1, - anon_sym_if, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(320), 1, - sym_identifier, - ACTIONS(338), 1, + ACTIONS(336), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(334), 21, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, - STATE(121), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6308] = 16, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5913] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(15), 1, - anon_sym_include, - ACTIONS(19), 1, - anon_sym_LBRACE, - ACTIONS(21), 1, - anon_sym_for, - ACTIONS(23), 1, - anon_sym_intersection_for, - ACTIONS(25), 1, - anon_sym_let, - ACTIONS(27), 1, - anon_sym_assign, - ACTIONS(29), 1, - anon_sym_if, - ACTIONS(33), 1, - anon_sym_assert, - ACTIONS(320), 1, - sym_identifier, - ACTIONS(340), 1, + ACTIONS(340), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(338), 21, anon_sym_SEMI, - STATE(84), 1, - sym_modifier, - STATE(85), 1, - sym_module_call, - STATE(86), 1, - sym__assert_clause, - ACTIONS(31), 4, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, - STATE(128), 11, - sym__statement, - sym_include_statement, - sym_union_block, - sym_for_block, - sym_intersection_for_block, - sym_let_block, - sym_assign_block, - sym_if_block, - sym_modifier_chain, - sym_transform_chain, - sym_assert_statement, - [6370] = 3, + anon_sym_LBRACK, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5945] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(344), 12, + ACTIONS(344), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(342), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_EQ, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(342), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6405] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [5977] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(348), 11, + ACTIONS(348), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(346), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(346), 16, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_each, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6440] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6009] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(352), 12, + ACTIONS(352), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(350), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_EQ, - anon_sym_LBRACE, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_STAR, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(350), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6475] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6041] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(356), 11, + ACTIONS(356), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(354), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(354), 16, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_each, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6510] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6073] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(360), 12, + ACTIONS(360), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(358), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_EQ, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(358), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6545] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6105] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(364), 11, + ACTIONS(364), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(362), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(362), 16, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_each, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6580] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6137] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(368), 12, + ACTIONS(368), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(366), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_EQ, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(366), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6615] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6169] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(372), 11, + ACTIONS(372), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(370), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(370), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6649] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6201] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(376), 11, + ACTIONS(376), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(374), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(374), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6683] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6233] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(380), 11, + ACTIONS(380), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(378), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(378), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6717] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6265] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(384), 11, + ACTIONS(384), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(382), 21, anon_sym_SEMI, anon_sym_LPAREN, - anon_sym_LBRACE, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(382), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_DOT, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6751] = 3, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [6297] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(388), 11, - anon_sym_SEMI, + ACTIONS(278), 1, anon_sym_LPAREN, - anon_sym_LBRACE, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(386), 15, - anon_sym_function, - anon_sym_include, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, + ACTIONS(290), 2, anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [6785] = 16, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(386), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_RBRACK, + [6354] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - STATE(30), 1, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(390), 4, + ACTIONS(388), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_else, anon_sym_RBRACK, - [6842] = 16, + [6411] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - STATE(30), 1, + ACTIONS(392), 1, + anon_sym_COLON, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(392), 4, + ACTIONS(390), 2, anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_else, anon_sym_RBRACK, - [6899] = 18, + [6469] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, ACTIONS(394), 1, anon_sym_COMMA, ACTIONS(396), 1, anon_sym_RPAREN, - STATE(30), 1, + STATE(101), 1, sym_arguments, - STATE(192), 1, + STATE(184), 1, aux_sym__assert_clause_repeat1, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [6959] = 17, + [6529] = 18, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, + ACTIONS(398), 1, + anon_sym_COMMA, ACTIONS(400), 1, - anon_sym_COLON, - STATE(30), 1, + anon_sym_RPAREN, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + STATE(199), 1, + aux_sym_arguments_repeat1, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(398), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [7017] = 18, + [6589] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(402), 1, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(402), 3, + anon_sym_SEMI, anon_sym_COMMA, - ACTIONS(404), 1, anon_sym_RPAREN, - STATE(30), 1, + [6645] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(404), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + anon_sym_DOLLAR, + ACTIONS(406), 12, + anon_sym_module, + anon_sym_function, + anon_sym_include, + anon_sym_use, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_assert, + sym_identifier, + [6674] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, sym_arguments, - STATE(182), 1, - aux_sym_arguments_repeat1, - ACTIONS(81), 2, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(408), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [6729] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(410), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, + anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, + anon_sym_PERCENT, + anon_sym_DOLLAR, + ACTIONS(412), 12, + anon_sym_module, + anon_sym_function, + anon_sym_include, + anon_sym_use, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_assert, + sym_identifier, + [6758] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(414), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [7077] = 16, + anon_sym_DOLLAR, + ACTIONS(416), 12, + anon_sym_module, + anon_sym_function, + anon_sym_include, + anon_sym_use, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_else, + anon_sym_assert, + sym_identifier, + [6787] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - STATE(30), 1, + ACTIONS(418), 1, + anon_sym_COLON, + ACTIONS(420), 1, + anon_sym_RBRACK, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(406), 3, - anon_sym_SEMI, - anon_sym_COMMA, - anon_sym_RPAREN, - [7133] = 3, + [6844] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(408), 9, + ACTIONS(422), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7702,7 +7492,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(410), 12, + ACTIONS(424), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7715,76 +7505,49 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7162] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(412), 1, - anon_sym_EQ, - ACTIONS(175), 3, - anon_sym_LT, - anon_sym_GT, - anon_sym_SLASH, - ACTIONS(173), 17, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_LBRACK, - anon_sym_DOT, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_CARET, - anon_sym_QMARK, - [7193] = 16, + [6873] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - STATE(30), 1, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(398), 2, + ACTIONS(390), 2, anon_sym_COMMA, anon_sym_RBRACK, - [7248] = 3, + [6928] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(414), 9, + ACTIONS(426), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7794,7 +7557,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(416), 12, + ACTIONS(428), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7807,10 +7570,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7277] = 3, + [6957] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(418), 9, + ACTIONS(434), 1, + anon_sym_else, + ACTIONS(430), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7820,7 +7585,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(420), 12, + ACTIONS(432), 11, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7830,13 +7595,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_assign, anon_sym_if, - anon_sym_else, anon_sym_assert, sym_identifier, - [7306] = 3, + [6988] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(422), 9, + ACTIONS(436), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7846,7 +7610,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(424), 12, + ACTIONS(438), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7859,10 +7623,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7335] = 3, + [7017] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(426), 9, + ACTIONS(440), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7872,7 +7636,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(428), 12, + ACTIONS(442), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7885,10 +7649,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7364] = 3, + [7046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(430), 9, + ACTIONS(444), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -7898,7 +7662,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(432), 12, + ACTIONS(446), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -7911,129 +7675,90 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7393] = 16, + [7075] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(434), 2, + ACTIONS(448), 1, anon_sym_COMMA, + ACTIONS(450), 1, anon_sym_RPAREN, - [7448] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - ACTIONS(436), 1, - anon_sym_COLON, - ACTIONS(438), 1, - anon_sym_RBRACK, - STATE(30), 1, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [7505] = 17, + [7132] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(440), 1, + ACTIONS(452), 1, anon_sym_COMMA, - ACTIONS(442), 1, + ACTIONS(454), 1, anon_sym_RPAREN, - STATE(30), 1, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [7562] = 3, + [7189] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(444), 9, + ACTIONS(456), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -8043,7 +7768,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(446), 12, + ACTIONS(458), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8056,10 +7781,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7591] = 3, + [7218] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(448), 9, + ACTIONS(460), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -8069,7 +7794,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(450), 12, + ACTIONS(462), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8082,10 +7807,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7620] = 3, + [7247] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(452), 9, + ACTIONS(464), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -8095,7 +7820,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(454), 12, + ACTIONS(466), 12, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8108,36 +7833,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_else, anon_sym_assert, sym_identifier, - [7649] = 3, + [7276] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(456), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, + ACTIONS(468), 1, + anon_sym_EQ, + ACTIONS(368), 3, + anon_sym_LT, + anon_sym_GT, + anon_sym_SLASH, + ACTIONS(366), 17, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_RPAREN, anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, anon_sym_PERCENT, - anon_sym_DOLLAR, - ACTIONS(458), 12, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_else, - anon_sym_assert, - sym_identifier, - [7678] = 3, + anon_sym_LBRACK, + anon_sym_DOT, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_CARET, + anon_sym_QMARK, + [7307] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(460), 9, + ACTIONS(278), 1, + anon_sym_LPAREN, + ACTIONS(280), 1, + anon_sym_LBRACK, + ACTIONS(282), 1, + anon_sym_DOT, + ACTIONS(292), 1, + anon_sym_PIPE_PIPE, + ACTIONS(294), 1, + anon_sym_AMP_AMP, + ACTIONS(302), 1, + anon_sym_SLASH, + ACTIONS(304), 1, + anon_sym_CARET, + ACTIONS(306), 1, + anon_sym_QMARK, + STATE(101), 1, + sym_arguments, + ACTIONS(288), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(290), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(296), 2, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + ACTIONS(298), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(300), 2, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(470), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [7362] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(472), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -8147,7 +7912,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(462), 12, + ACTIONS(474), 11, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8157,94 +7922,75 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_let, anon_sym_assign, anon_sym_if, - anon_sym_else, anon_sym_assert, sym_identifier, - [7707] = 17, + [7390] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(464), 1, - anon_sym_COMMA, - ACTIONS(466), 1, - anon_sym_RPAREN, - STATE(30), 1, + ACTIONS(476), 1, + anon_sym_SEMI, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [7764] = 16, + [7444] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, - anon_sym_LPAREN, - ACTIONS(83), 1, - anon_sym_LBRACK, - ACTIONS(85), 1, - anon_sym_DOT, - ACTIONS(89), 1, - anon_sym_PIPE_PIPE, - ACTIONS(91), 1, - anon_sym_AMP_AMP, - ACTIONS(99), 1, - anon_sym_SLASH, - ACTIONS(101), 1, - anon_sym_CARET, - ACTIONS(103), 1, - anon_sym_QMARK, - STATE(30), 1, - sym_arguments, - ACTIONS(81), 2, + ACTIONS(478), 9, + ts_builtin_sym_end, + anon_sym_SEMI, + anon_sym_LBRACE, + anon_sym_RBRACE, anon_sym_STAR, + anon_sym_BANG, + anon_sym_POUND, anon_sym_PERCENT, - ACTIONS(87), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(93), 2, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - ACTIONS(95), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(97), 2, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(468), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [7819] = 4, + anon_sym_DOLLAR, + ACTIONS(480), 11, + anon_sym_module, + anon_sym_function, + anon_sym_include, + anon_sym_use, + anon_sym_for, + anon_sym_intersection_for, + anon_sym_let, + anon_sym_assign, + anon_sym_if, + anon_sym_assert, + sym_identifier, + [7472] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(474), 1, - anon_sym_else, - ACTIONS(470), 9, + ACTIONS(482), 9, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, @@ -8254,7 +8000,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(472), 11, + ACTIONS(484), 11, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8266,349 +8012,347 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_assert, sym_identifier, - [7850] = 16, + [7500] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(476), 1, - anon_sym_SEMI, - STATE(30), 1, + ACTIONS(486), 1, + anon_sym_RPAREN, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [7904] = 16, + [7554] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(478), 1, - anon_sym_RPAREN, - STATE(30), 1, + ACTIONS(488), 1, + anon_sym_RBRACK, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [7958] = 16, + [7608] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(480), 1, + ACTIONS(490), 1, anon_sym_SEMI, - STATE(30), 1, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8012] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(482), 9, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_RBRACE, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_DOLLAR, - ACTIONS(484), 11, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_assert, - sym_identifier, - [8040] = 16, + [7662] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(486), 1, - anon_sym_COLON, - STATE(30), 1, + ACTIONS(492), 1, + anon_sym_RBRACK, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8094] = 16, + [7716] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(488), 1, - anon_sym_RBRACK, - STATE(30), 1, + ACTIONS(494), 1, + anon_sym_SEMI, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8148] = 16, + [7770] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(490), 1, - anon_sym_RPAREN, - STATE(30), 1, + ACTIONS(496), 1, + anon_sym_COLON, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8202] = 16, + [7824] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(492), 1, - anon_sym_RBRACK, - STATE(30), 1, + ACTIONS(498), 1, + anon_sym_SEMI, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8256] = 16, + [7878] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(83), 1, + ACTIONS(280), 1, anon_sym_LBRACK, - ACTIONS(85), 1, + ACTIONS(282), 1, anon_sym_DOT, - ACTIONS(89), 1, + ACTIONS(292), 1, anon_sym_PIPE_PIPE, - ACTIONS(91), 1, + ACTIONS(294), 1, anon_sym_AMP_AMP, - ACTIONS(99), 1, + ACTIONS(302), 1, anon_sym_SLASH, - ACTIONS(101), 1, + ACTIONS(304), 1, anon_sym_CARET, - ACTIONS(103), 1, + ACTIONS(306), 1, anon_sym_QMARK, - ACTIONS(494), 1, - anon_sym_SEMI, - STATE(30), 1, + ACTIONS(500), 1, + anon_sym_RPAREN, + STATE(101), 1, sym_arguments, - ACTIONS(81), 2, + ACTIONS(288), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(87), 2, + ACTIONS(290), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(93), 2, + ACTIONS(296), 2, anon_sym_EQ_EQ, anon_sym_BANG_EQ, - ACTIONS(95), 2, + ACTIONS(298), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(97), 2, + ACTIONS(300), 2, anon_sym_LT_EQ, anon_sym_GT_EQ, - [8310] = 3, + [7932] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(504), 6, + anon_sym_LPAREN, + anon_sym_BANG, + anon_sym_LBRACK, + anon_sym_PLUS, + anon_sym_DOLLAR, + anon_sym_DQUOTE, + ACTIONS(502), 13, + anon_sym_function, + anon_sym_for, + anon_sym_let, + anon_sym_if, + anon_sym_each, + anon_sym_DASH, + anon_sym_assert, + sym_identifier, + sym_decimal, + sym_float, + anon_sym_true, + anon_sym_false, + sym_undef, + [7959] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(496), 9, + ACTIONS(506), 8, ts_builtin_sym_end, anon_sym_SEMI, anon_sym_LBRACE, - anon_sym_RBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, anon_sym_DOLLAR, - ACTIONS(498), 11, + ACTIONS(508), 11, anon_sym_module, anon_sym_function, anon_sym_include, @@ -8620,41 +8364,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_assert, sym_identifier, - [8338] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(502), 6, - anon_sym_LPAREN, - anon_sym_BANG, - anon_sym_LBRACK, - anon_sym_PLUS, - anon_sym_DOLLAR, - sym_string, - ACTIONS(500), 13, - anon_sym_function, - anon_sym_for, - anon_sym_let, - anon_sym_if, - anon_sym_each, - anon_sym_DASH, - anon_sym_assert, - sym_identifier, - sym_decimal, - sym_float, - anon_sym_true, - anon_sym_false, - sym_undef, - [8365] = 3, + [7986] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(506), 6, + ACTIONS(512), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(504), 13, + anon_sym_DQUOTE, + ACTIONS(510), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8668,17 +8388,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8392] = 3, + [8013] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(137), 6, + ACTIONS(516), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(139), 13, + anon_sym_DQUOTE, + ACTIONS(514), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8692,17 +8412,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8419] = 3, + [8040] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(510), 6, + ACTIONS(520), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(508), 13, + anon_sym_DQUOTE, + ACTIONS(518), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8716,17 +8436,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8446] = 3, + [8067] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(514), 6, + ACTIONS(524), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(512), 13, + anon_sym_DQUOTE, + ACTIONS(522), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8740,17 +8460,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8473] = 3, + [8094] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(518), 6, + ACTIONS(528), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(516), 13, + anon_sym_DQUOTE, + ACTIONS(526), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8764,17 +8484,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8500] = 3, + [8121] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(522), 6, + ACTIONS(196), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(520), 13, + anon_sym_DQUOTE, + ACTIONS(194), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8788,17 +8508,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8527] = 3, + [8148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(526), 6, + ACTIONS(532), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(524), 13, + anon_sym_DQUOTE, + ACTIONS(530), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8812,41 +8532,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8554] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(528), 8, - ts_builtin_sym_end, - anon_sym_SEMI, - anon_sym_LBRACE, - anon_sym_STAR, - anon_sym_BANG, - anon_sym_POUND, - anon_sym_PERCENT, - anon_sym_DOLLAR, - ACTIONS(530), 11, - anon_sym_module, - anon_sym_function, - anon_sym_include, - anon_sym_use, - anon_sym_for, - anon_sym_intersection_for, - anon_sym_let, - anon_sym_assign, - anon_sym_if, - anon_sym_assert, - sym_identifier, - [8581] = 3, + [8175] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 6, + ACTIONS(536), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(532), 13, + anon_sym_DQUOTE, + ACTIONS(534), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8860,17 +8556,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8608] = 3, + [8202] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(538), 6, + ACTIONS(540), 6, anon_sym_LPAREN, anon_sym_BANG, anon_sym_LBRACK, anon_sym_PLUS, anon_sym_DOLLAR, - sym_string, - ACTIONS(536), 13, + anon_sym_DQUOTE, + ACTIONS(538), 13, anon_sym_function, anon_sym_for, anon_sym_let, @@ -8884,17 +8580,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_true, anon_sym_false, sym_undef, - [8635] = 3, + [8229] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 6, + ACTIONS(544), 6, anon_sym_SEMI, anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - ACTIONS(540), 8, + ACTIONS(542), 8, anon_sym_include, anon_sym_for, anon_sym_intersection_for, @@ -8903,17 +8599,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_assert, sym_identifier, - [8657] = 3, + [8251] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(546), 6, + ACTIONS(548), 6, anon_sym_SEMI, anon_sym_LBRACE, anon_sym_STAR, anon_sym_BANG, anon_sym_POUND, anon_sym_PERCENT, - ACTIONS(544), 8, + ACTIONS(546), 8, anon_sym_include, anon_sym_for, anon_sym_intersection_for, @@ -8922,1159 +8618,1213 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_assert, sym_identifier, - [8679] = 8, + [8273] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, - sym_identifier, ACTIONS(550), 1, - anon_sym_COMMA, + sym_identifier, ACTIONS(552), 1, + anon_sym_COMMA, + ACTIONS(554), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(184), 1, + STATE(196), 1, sym__variable_name, - STATE(186), 2, + STATE(193), 2, sym__parameter_declaration, sym_assignment, - [8705] = 8, + [8299] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(554), 1, - anon_sym_SEMI, ACTIONS(556), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(169), 1, - sym_assignment, - STATE(213), 1, + STATE(196), 1, sym__variable_name, - [8730] = 7, + STATE(208), 2, + sym__parameter_declaration, + sym_assignment, + [8322] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, ACTIONS(558), 1, + anon_sym_SEMI, + ACTIONS(560), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(184), 1, - sym__variable_name, - STATE(201), 2, - sym__parameter_declaration, + STATE(166), 1, sym_assignment, - [8753] = 7, + STATE(214), 1, + sym__variable_name, + [8347] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(560), 1, + ACTIONS(562), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(184), 1, + STATE(196), 1, sym__variable_name, - STATE(201), 2, + STATE(208), 2, sym__parameter_declaration, sym_assignment, - [8776] = 7, + [8370] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(562), 1, + ACTIONS(564), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(177), 1, + STATE(185), 1, sym_assignment, - STATE(213), 1, + STATE(214), 1, sym__variable_name, - [8798] = 7, + [8392] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(556), 1, + ACTIONS(566), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(187), 1, + STATE(190), 1, sym_assignment, - STATE(213), 1, + STATE(214), 1, sym__variable_name, - [8820] = 6, + [8414] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - STATE(22), 1, + ACTIONS(568), 1, + anon_sym_RPAREN, + STATE(78), 1, sym_special_variable, - STATE(184), 1, - sym__variable_name, - STATE(201), 2, - sym__parameter_declaration, + STATE(194), 1, sym_assignment, - [8840] = 7, + STATE(214), 1, + sym__variable_name, + [8436] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(564), 1, + ACTIONS(560), 1, anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(183), 1, + STATE(188), 1, sym_assignment, - STATE(213), 1, + STATE(214), 1, sym__variable_name, - [8862] = 7, + [8458] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - ACTIONS(566), 1, - anon_sym_RPAREN, - STATE(22), 1, + STATE(78), 1, sym_special_variable, - STATE(174), 1, - sym_assignment, - STATE(213), 1, + STATE(196), 1, sym__variable_name, - [8884] = 6, + STATE(208), 2, + sym__parameter_declaration, + sym_assignment, + [8478] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(35), 1, anon_sym_DOLLAR, - ACTIONS(548), 1, + ACTIONS(550), 1, sym_identifier, - STATE(22), 1, + STATE(78), 1, sym_special_variable, STATE(180), 1, sym_assignment, - STATE(213), 1, + STATE(214), 1, sym__variable_name, - [8903] = 2, + [8497] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(570), 4, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_else, + anon_sym_RBRACK, + [8507] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(572), 1, + anon_sym_SEMI, + ACTIONS(574), 1, + anon_sym_COMMA, + ACTIONS(576), 1, + anon_sym_RPAREN, + STATE(170), 1, + aux_sym_parenthesized_assignments_repeat1, + [8523] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(568), 4, + ACTIONS(580), 1, anon_sym_COMMA, + STATE(167), 1, + aux_sym_parenthesized_assignments_repeat1, + ACTIONS(578), 2, + anon_sym_SEMI, anon_sym_RPAREN, - anon_sym_else, - anon_sym_RBRACK, - [8913] = 2, + [8537] = 5, + ACTIONS(583), 1, + anon_sym_DQUOTE, + ACTIONS(585), 1, + aux_sym_string_token1, + ACTIONS(587), 1, + anon_sym_BSLASH, + ACTIONS(589), 1, + sym_comment, + STATE(173), 1, + aux_sym_string_repeat1, + [8553] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(570), 4, + ACTIONS(388), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_else, anon_sym_RBRACK, - [8923] = 3, + [8563] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(574), 1, - anon_sym_else, - ACTIONS(572), 3, anon_sym_COMMA, + ACTIONS(591), 1, + anon_sym_SEMI, + ACTIONS(593), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - [8935] = 2, + STATE(167), 1, + aux_sym_parenthesized_assignments_repeat1, + [8579] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(576), 4, + ACTIONS(595), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_else, anon_sym_RBRACK, - [8945] = 2, + [8589] = 5, + ACTIONS(589), 1, + sym_comment, + ACTIONS(597), 1, + anon_sym_DQUOTE, + ACTIONS(599), 1, + aux_sym_string_token1, + ACTIONS(602), 1, + anon_sym_BSLASH, + STATE(172), 1, + aux_sym_string_repeat1, + [8605] = 5, + ACTIONS(589), 1, + sym_comment, + ACTIONS(605), 1, + anon_sym_DQUOTE, + ACTIONS(607), 1, + aux_sym_string_token1, + ACTIONS(609), 1, + anon_sym_BSLASH, + STATE(172), 1, + aux_sym_string_repeat1, + [8621] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(578), 4, + ACTIONS(611), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_else, anon_sym_RBRACK, - [8955] = 2, + [8631] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(392), 4, + ACTIONS(613), 4, anon_sym_COMMA, anon_sym_RPAREN, anon_sym_else, anon_sym_RBRACK, - [8965] = 4, + [8641] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(582), 1, + ACTIONS(617), 1, + anon_sym_else, + ACTIONS(615), 3, anon_sym_COMMA, - STATE(168), 1, - aux_sym_parenthesized_assignments_repeat1, - ACTIONS(580), 2, - anon_sym_SEMI, anon_sym_RPAREN, - [8979] = 5, + anon_sym_RBRACK, + [8653] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(585), 1, + ACTIONS(562), 1, + anon_sym_RPAREN, + ACTIONS(619), 1, + anon_sym_COMMA, + STATE(195), 1, + aux_sym_parameters_declaration_repeat1, + [8666] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_RBRACK, + ACTIONS(621), 1, + anon_sym_COMMA, + STATE(179), 1, + aux_sym_list_repeat1, + [8679] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(623), 1, + anon_sym_COMMA, + ACTIONS(626), 1, + anon_sym_RBRACK, + STATE(179), 1, + aux_sym_list_repeat1, + [8692] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(578), 3, anon_sym_SEMI, - ACTIONS(587), 1, anon_sym_COMMA, - ACTIONS(589), 1, anon_sym_RPAREN, - STATE(170), 1, - aux_sym_parenthesized_assignments_repeat1, - [8995] = 5, + [8701] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(591), 1, - anon_sym_SEMI, ACTIONS(593), 1, anon_sym_RPAREN, - STATE(168), 1, + STATE(167), 1, aux_sym_parenthesized_assignments_repeat1, - [9011] = 4, + [8714] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(628), 1, anon_sym_COMMA, - ACTIONS(595), 1, - anon_sym_RPAREN, - STATE(168), 1, - aux_sym_parenthesized_assignments_repeat1, - [9024] = 4, + ACTIONS(630), 1, + anon_sym_RBRACK, + STATE(178), 1, + aux_sym_list_repeat1, + [8727] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - ACTIONS(129), 1, + ACTIONS(312), 1, anon_sym_EQ, - STATE(151), 1, + STATE(153), 1, sym_arguments, - [9037] = 3, + [8740] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(597), 1, - anon_sym_LPAREN, - STATE(5), 2, - sym_parenthesized_assignments, - sym_condition_update_clause, - [9048] = 4, + ACTIONS(394), 1, + anon_sym_COMMA, + ACTIONS(632), 1, + anon_sym_RPAREN, + STATE(187), 1, + aux_sym__assert_clause_repeat1, + [8753] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(599), 1, + ACTIONS(634), 1, anon_sym_RPAREN, STATE(189), 1, aux_sym_parenthesized_assignments_repeat1, - [9061] = 4, + [8766] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, - anon_sym_RPAREN, - ACTIONS(601), 1, + ACTIONS(398), 1, anon_sym_COMMA, - STATE(181), 1, - aux_sym_parameters_declaration_repeat1, - [9074] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(434), 1, + ACTIONS(400), 1, anon_sym_RPAREN, - ACTIONS(603), 1, - anon_sym_COMMA, - STATE(176), 1, + STATE(199), 1, aux_sym_arguments_repeat1, - [9087] = 4, + [8779] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, - anon_sym_COMMA, - ACTIONS(606), 1, + ACTIONS(470), 1, anon_sym_RPAREN, - STATE(185), 1, - aux_sym_parenthesized_assignments_repeat1, - [9100] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(608), 1, + ACTIONS(636), 1, anon_sym_COMMA, - ACTIONS(610), 1, - anon_sym_RBRACK, - STATE(193), 1, - aux_sym_list_repeat1, - [9113] = 4, + STATE(187), 1, + aux_sym__assert_clause_repeat1, + [8792] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(593), 1, + ACTIONS(576), 1, anon_sym_RPAREN, - STATE(168), 1, + STATE(181), 1, aux_sym_parenthesized_assignments_repeat1, - [9126] = 2, + [8805] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(580), 3, - anon_sym_SEMI, + ACTIONS(574), 1, anon_sym_COMMA, + ACTIONS(639), 1, anon_sym_RPAREN, - [9135] = 4, + STATE(167), 1, + aux_sym_parenthesized_assignments_repeat1, + [8818] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(612), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(615), 1, + ACTIONS(641), 1, anon_sym_RPAREN, - STATE(181), 1, - aux_sym_parameters_declaration_repeat1, - [9148] = 4, + STATE(192), 1, + aux_sym_parenthesized_assignments_repeat1, + [8831] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, + ACTIONS(408), 1, anon_sym_RPAREN, - ACTIONS(617), 1, + ACTIONS(643), 1, anon_sym_COMMA, - STATE(176), 1, + STATE(191), 1, aux_sym_arguments_repeat1, - [9161] = 4, + [8844] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(619), 1, + ACTIONS(646), 1, anon_sym_RPAREN, - STATE(171), 1, + STATE(167), 1, aux_sym_parenthesized_assignments_repeat1, - [9174] = 3, + [8857] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(623), 1, - anon_sym_EQ, - ACTIONS(621), 2, + ACTIONS(648), 1, anon_sym_COMMA, + ACTIONS(650), 1, anon_sym_RPAREN, - [9185] = 4, + STATE(177), 1, + aux_sym_parameters_declaration_repeat1, + [8870] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(625), 1, + ACTIONS(652), 1, anon_sym_RPAREN, - STATE(168), 1, + STATE(197), 1, aux_sym_parenthesized_assignments_repeat1, - [9198] = 4, + [8883] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(627), 1, + ACTIONS(654), 1, anon_sym_COMMA, - ACTIONS(629), 1, + ACTIONS(657), 1, anon_sym_RPAREN, - STATE(175), 1, + STATE(195), 1, aux_sym_parameters_declaration_repeat1, - [9211] = 4, + [8896] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(661), 1, + anon_sym_EQ, + ACTIONS(659), 2, anon_sym_COMMA, - ACTIONS(589), 1, - anon_sym_RPAREN, - STATE(179), 1, - aux_sym_parenthesized_assignments_repeat1, - [9224] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(468), 1, anon_sym_RPAREN, - ACTIONS(631), 1, - anon_sym_COMMA, - STATE(188), 1, - aux_sym__assert_clause_repeat1, - [9237] = 4, + [8907] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(587), 1, + ACTIONS(574), 1, anon_sym_COMMA, - ACTIONS(634), 1, + ACTIONS(663), 1, anon_sym_RPAREN, - STATE(168), 1, + STATE(167), 1, aux_sym_parenthesized_assignments_repeat1, - [9250] = 4, + [8920] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(636), 1, - anon_sym_COMMA, - ACTIONS(639), 1, - anon_sym_RBRACK, - STATE(190), 1, - aux_sym_list_repeat1, - [9263] = 4, + ACTIONS(665), 1, + anon_sym_LPAREN, + STATE(5), 2, + sym_parenthesized_assignments, + sym_condition_update_clause, + [8931] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(402), 1, - anon_sym_COMMA, - ACTIONS(404), 1, + ACTIONS(180), 1, anon_sym_RPAREN, - STATE(182), 1, - aux_sym_arguments_repeat1, - [9276] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(394), 1, + ACTIONS(667), 1, anon_sym_COMMA, - ACTIONS(641), 1, - anon_sym_RPAREN, - STATE(188), 1, - aux_sym__assert_clause_repeat1, - [9289] = 4, + STATE(191), 1, + aux_sym_arguments_repeat1, + [8944] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(69), 1, - anon_sym_RBRACK, - ACTIONS(643), 1, - anon_sym_COMMA, - STATE(190), 1, - aux_sym_list_repeat1, - [9302] = 2, + ACTIONS(669), 1, + anon_sym_LPAREN, + STATE(55), 1, + sym_parenthesized_assignments, + [8954] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(434), 2, - anon_sym_COMMA, - anon_sym_RPAREN, - [9310] = 3, + ACTIONS(671), 1, + anon_sym_LPAREN, + STATE(7), 1, + sym_parenthesized_expression, + [8964] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(645), 1, + ACTIONS(673), 1, anon_sym_LPAREN, - STATE(83), 1, + STATE(218), 1, sym_parameters_declaration, - [9320] = 3, + [8974] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(278), 1, anon_sym_LPAREN, - STATE(88), 1, - sym_parenthesized_assignments, - [9330] = 3, + STATE(153), 1, + sym_arguments, + [8984] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - anon_sym_LPAREN, - STATE(87), 1, - sym_parenthesized_assignments, - [9340] = 2, + ACTIONS(408), 2, + anon_sym_COMMA, + anon_sym_RPAREN, + [8992] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(639), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [9348] = 3, + ACTIONS(669), 1, + anon_sym_LPAREN, + STATE(53), 1, + sym_parenthesized_assignments, + [9002] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(79), 1, + ACTIONS(669), 1, anon_sym_LPAREN, - STATE(151), 1, - sym_arguments, - [9358] = 3, + STATE(61), 1, + sym_parenthesized_assignments, + [9012] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(649), 1, + ACTIONS(669), 1, anon_sym_LPAREN, - STATE(6), 1, - sym_parenthesized_expression, - [9368] = 2, + STATE(62), 1, + sym_parenthesized_assignments, + [9022] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(615), 2, + ACTIONS(657), 2, anon_sym_COMMA, anon_sym_RPAREN, - [9376] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(645), 1, - anon_sym_LPAREN, - STATE(208), 1, - sym_parameters_declaration, - [9386] = 3, + [9030] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(39), 1, anon_sym_LPAREN, - STATE(89), 1, - sym_parenthesized_assignments, - [9396] = 3, + STATE(58), 1, + sym_parenthesized_expression, + [9040] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(645), 1, + ACTIONS(673), 1, anon_sym_LPAREN, - STATE(77), 1, + STATE(57), 1, sym_parameters_declaration, - [9406] = 3, + [9050] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - anon_sym_LPAREN, - STATE(82), 1, - sym_parenthesized_assignments, - [9416] = 3, + ACTIONS(626), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [9058] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(39), 1, + ACTIONS(669), 1, anon_sym_LPAREN, - STATE(91), 1, - sym_parenthesized_expression, - [9426] = 3, + STATE(40), 1, + sym_parenthesized_assignments, + [9068] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(673), 1, anon_sym_LPAREN, - STATE(78), 1, - sym_parenthesized_assignments, - [9436] = 2, + STATE(38), 1, + sym_parameters_declaration, + [9078] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(651), 1, + ACTIONS(661), 1, anon_sym_EQ, - [9443] = 2, + [9085] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(653), 1, - sym_identifier, - [9450] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(655), 1, + ACTIONS(675), 1, ts_builtin_sym_end, - [9457] = 2, + [9092] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(657), 1, - anon_sym_RPAREN, - [9464] = 2, + ACTIONS(677), 1, + anon_sym_SEMI, + [9099] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(659), 1, - anon_sym_SEMI, - [9471] = 2, + ACTIONS(679), 1, + sym_identifier, + [9106] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(623), 1, + ACTIONS(681), 1, anon_sym_EQ, - [9478] = 2, + [9113] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(661), 1, - sym_identifier, - [9485] = 2, + ACTIONS(650), 1, + anon_sym_RPAREN, + [9120] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(663), 1, - anon_sym_LPAREN, - [9492] = 2, + ACTIONS(683), 1, + anon_sym_RPAREN, + [9127] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(665), 1, + ACTIONS(685), 1, sym_include_path, - [9499] = 2, + [9134] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(629), 1, - anon_sym_RPAREN, - [9506] = 2, + ACTIONS(687), 1, + sym_identifier, + [9141] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(667), 1, + ACTIONS(689), 1, sym_include_path, - [9513] = 2, + [9148] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(669), 1, + ACTIONS(691), 1, + anon_sym_LPAREN, + [9155] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(693), 1, sym_identifier, - [9520] = 2, + [9162] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(671), 1, + ACTIONS(695), 1, sym_identifier, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(2)] = 0, - [SMALL_STATE(3)] = 98, - [SMALL_STATE(4)] = 196, - [SMALL_STATE(5)] = 294, - [SMALL_STATE(6)] = 389, - [SMALL_STATE(7)] = 484, - [SMALL_STATE(8)] = 579, - [SMALL_STATE(9)] = 674, - [SMALL_STATE(10)] = 752, - [SMALL_STATE(11)] = 810, - [SMALL_STATE(12)] = 870, - [SMALL_STATE(13)] = 934, - [SMALL_STATE(14)] = 1012, - [SMALL_STATE(15)] = 1078, - [SMALL_STATE(16)] = 1172, - [SMALL_STATE(17)] = 1230, - [SMALL_STATE(18)] = 1308, - [SMALL_STATE(19)] = 1386, - [SMALL_STATE(20)] = 1436, - [SMALL_STATE(21)] = 1506, - [SMALL_STATE(22)] = 1578, - [SMALL_STATE(23)] = 1628, - [SMALL_STATE(24)] = 1702, - [SMALL_STATE(25)] = 1766, - [SMALL_STATE(26)] = 1815, - [SMALL_STATE(27)] = 1864, - [SMALL_STATE(28)] = 1913, - [SMALL_STATE(29)] = 1962, - [SMALL_STATE(30)] = 2011, - [SMALL_STATE(31)] = 2060, - [SMALL_STATE(32)] = 2109, - [SMALL_STATE(33)] = 2158, - [SMALL_STATE(34)] = 2249, - [SMALL_STATE(35)] = 2298, - [SMALL_STATE(36)] = 2347, - [SMALL_STATE(37)] = 2396, - [SMALL_STATE(38)] = 2487, - [SMALL_STATE(39)] = 2536, - [SMALL_STATE(40)] = 2585, - [SMALL_STATE(41)] = 2634, - [SMALL_STATE(42)] = 2683, - [SMALL_STATE(43)] = 2732, - [SMALL_STATE(44)] = 2781, - [SMALL_STATE(45)] = 2830, - [SMALL_STATE(46)] = 2920, - [SMALL_STATE(47)] = 3007, - [SMALL_STATE(48)] = 3094, - [SMALL_STATE(49)] = 3181, - [SMALL_STATE(50)] = 3266, - [SMALL_STATE(51)] = 3351, - [SMALL_STATE(52)] = 3424, - [SMALL_STATE(53)] = 3509, - [SMALL_STATE(54)] = 3591, - [SMALL_STATE(55)] = 3671, - [SMALL_STATE(56)] = 3748, - [SMALL_STATE(57)] = 3825, - [SMALL_STATE(58)] = 3902, - [SMALL_STATE(59)] = 3979, - [SMALL_STATE(60)] = 4056, - [SMALL_STATE(61)] = 4133, - [SMALL_STATE(62)] = 4210, - [SMALL_STATE(63)] = 4287, - [SMALL_STATE(64)] = 4364, - [SMALL_STATE(65)] = 4441, - [SMALL_STATE(66)] = 4518, - [SMALL_STATE(67)] = 4595, - [SMALL_STATE(68)] = 4672, - [SMALL_STATE(69)] = 4749, - [SMALL_STATE(70)] = 4826, - [SMALL_STATE(71)] = 4903, - [SMALL_STATE(72)] = 4980, - [SMALL_STATE(73)] = 5057, - [SMALL_STATE(74)] = 5134, - [SMALL_STATE(75)] = 5211, - [SMALL_STATE(76)] = 5288, - [SMALL_STATE(77)] = 5365, - [SMALL_STATE(78)] = 5442, - [SMALL_STATE(79)] = 5519, - [SMALL_STATE(80)] = 5596, - [SMALL_STATE(81)] = 5673, - [SMALL_STATE(82)] = 5750, - [SMALL_STATE(83)] = 5812, - [SMALL_STATE(84)] = 5874, - [SMALL_STATE(85)] = 5936, - [SMALL_STATE(86)] = 5998, - [SMALL_STATE(87)] = 6060, - [SMALL_STATE(88)] = 6122, - [SMALL_STATE(89)] = 6184, - [SMALL_STATE(90)] = 6246, - [SMALL_STATE(91)] = 6308, - [SMALL_STATE(92)] = 6370, - [SMALL_STATE(93)] = 6405, - [SMALL_STATE(94)] = 6440, - [SMALL_STATE(95)] = 6475, - [SMALL_STATE(96)] = 6510, - [SMALL_STATE(97)] = 6545, - [SMALL_STATE(98)] = 6580, - [SMALL_STATE(99)] = 6615, - [SMALL_STATE(100)] = 6649, - [SMALL_STATE(101)] = 6683, - [SMALL_STATE(102)] = 6717, - [SMALL_STATE(103)] = 6751, - [SMALL_STATE(104)] = 6785, - [SMALL_STATE(105)] = 6842, - [SMALL_STATE(106)] = 6899, - [SMALL_STATE(107)] = 6959, - [SMALL_STATE(108)] = 7017, - [SMALL_STATE(109)] = 7077, - [SMALL_STATE(110)] = 7133, - [SMALL_STATE(111)] = 7162, - [SMALL_STATE(112)] = 7193, - [SMALL_STATE(113)] = 7248, - [SMALL_STATE(114)] = 7277, - [SMALL_STATE(115)] = 7306, - [SMALL_STATE(116)] = 7335, - [SMALL_STATE(117)] = 7364, - [SMALL_STATE(118)] = 7393, - [SMALL_STATE(119)] = 7448, - [SMALL_STATE(120)] = 7505, - [SMALL_STATE(121)] = 7562, - [SMALL_STATE(122)] = 7591, - [SMALL_STATE(123)] = 7620, - [SMALL_STATE(124)] = 7649, - [SMALL_STATE(125)] = 7678, - [SMALL_STATE(126)] = 7707, - [SMALL_STATE(127)] = 7764, - [SMALL_STATE(128)] = 7819, - [SMALL_STATE(129)] = 7850, - [SMALL_STATE(130)] = 7904, - [SMALL_STATE(131)] = 7958, - [SMALL_STATE(132)] = 8012, - [SMALL_STATE(133)] = 8040, - [SMALL_STATE(134)] = 8094, - [SMALL_STATE(135)] = 8148, - [SMALL_STATE(136)] = 8202, - [SMALL_STATE(137)] = 8256, - [SMALL_STATE(138)] = 8310, - [SMALL_STATE(139)] = 8338, - [SMALL_STATE(140)] = 8365, - [SMALL_STATE(141)] = 8392, - [SMALL_STATE(142)] = 8419, - [SMALL_STATE(143)] = 8446, - [SMALL_STATE(144)] = 8473, - [SMALL_STATE(145)] = 8500, - [SMALL_STATE(146)] = 8527, - [SMALL_STATE(147)] = 8554, - [SMALL_STATE(148)] = 8581, - [SMALL_STATE(149)] = 8608, - [SMALL_STATE(150)] = 8635, - [SMALL_STATE(151)] = 8657, - [SMALL_STATE(152)] = 8679, - [SMALL_STATE(153)] = 8705, - [SMALL_STATE(154)] = 8730, - [SMALL_STATE(155)] = 8753, - [SMALL_STATE(156)] = 8776, - [SMALL_STATE(157)] = 8798, - [SMALL_STATE(158)] = 8820, - [SMALL_STATE(159)] = 8840, - [SMALL_STATE(160)] = 8862, - [SMALL_STATE(161)] = 8884, - [SMALL_STATE(162)] = 8903, - [SMALL_STATE(163)] = 8913, - [SMALL_STATE(164)] = 8923, - [SMALL_STATE(165)] = 8935, - [SMALL_STATE(166)] = 8945, - [SMALL_STATE(167)] = 8955, - [SMALL_STATE(168)] = 8965, - [SMALL_STATE(169)] = 8979, - [SMALL_STATE(170)] = 8995, - [SMALL_STATE(171)] = 9011, - [SMALL_STATE(172)] = 9024, - [SMALL_STATE(173)] = 9037, - [SMALL_STATE(174)] = 9048, - [SMALL_STATE(175)] = 9061, - [SMALL_STATE(176)] = 9074, - [SMALL_STATE(177)] = 9087, - [SMALL_STATE(178)] = 9100, - [SMALL_STATE(179)] = 9113, - [SMALL_STATE(180)] = 9126, - [SMALL_STATE(181)] = 9135, - [SMALL_STATE(182)] = 9148, - [SMALL_STATE(183)] = 9161, - [SMALL_STATE(184)] = 9174, - [SMALL_STATE(185)] = 9185, - [SMALL_STATE(186)] = 9198, - [SMALL_STATE(187)] = 9211, - [SMALL_STATE(188)] = 9224, - [SMALL_STATE(189)] = 9237, - [SMALL_STATE(190)] = 9250, - [SMALL_STATE(191)] = 9263, - [SMALL_STATE(192)] = 9276, - [SMALL_STATE(193)] = 9289, - [SMALL_STATE(194)] = 9302, - [SMALL_STATE(195)] = 9310, - [SMALL_STATE(196)] = 9320, - [SMALL_STATE(197)] = 9330, - [SMALL_STATE(198)] = 9340, - [SMALL_STATE(199)] = 9348, - [SMALL_STATE(200)] = 9358, - [SMALL_STATE(201)] = 9368, - [SMALL_STATE(202)] = 9376, - [SMALL_STATE(203)] = 9386, - [SMALL_STATE(204)] = 9396, - [SMALL_STATE(205)] = 9406, - [SMALL_STATE(206)] = 9416, - [SMALL_STATE(207)] = 9426, - [SMALL_STATE(208)] = 9436, - [SMALL_STATE(209)] = 9443, - [SMALL_STATE(210)] = 9450, - [SMALL_STATE(211)] = 9457, - [SMALL_STATE(212)] = 9464, - [SMALL_STATE(213)] = 9471, - [SMALL_STATE(214)] = 9478, - [SMALL_STATE(215)] = 9485, - [SMALL_STATE(216)] = 9492, - [SMALL_STATE(217)] = 9499, - [SMALL_STATE(218)] = 9506, - [SMALL_STATE(219)] = 9513, - [SMALL_STATE(220)] = 9520, + [SMALL_STATE(3)] = 99, + [SMALL_STATE(4)] = 198, + [SMALL_STATE(5)] = 297, + [SMALL_STATE(6)] = 393, + [SMALL_STATE(7)] = 489, + [SMALL_STATE(8)] = 585, + [SMALL_STATE(9)] = 681, + [SMALL_STATE(10)] = 776, + [SMALL_STATE(11)] = 867, + [SMALL_STATE(12)] = 958, + [SMALL_STATE(13)] = 1049, + [SMALL_STATE(14)] = 1136, + [SMALL_STATE(15)] = 1223, + [SMALL_STATE(16)] = 1310, + [SMALL_STATE(17)] = 1396, + [SMALL_STATE(18)] = 1482, + [SMALL_STATE(19)] = 1568, + [SMALL_STATE(20)] = 1649, + [SMALL_STATE(21)] = 1732, + [SMALL_STATE(22)] = 1810, + [SMALL_STATE(23)] = 1888, + [SMALL_STATE(24)] = 1966, + [SMALL_STATE(25)] = 2044, + [SMALL_STATE(26)] = 2122, + [SMALL_STATE(27)] = 2200, + [SMALL_STATE(28)] = 2278, + [SMALL_STATE(29)] = 2356, + [SMALL_STATE(30)] = 2434, + [SMALL_STATE(31)] = 2512, + [SMALL_STATE(32)] = 2590, + [SMALL_STATE(33)] = 2668, + [SMALL_STATE(34)] = 2746, + [SMALL_STATE(35)] = 2824, + [SMALL_STATE(36)] = 2902, + [SMALL_STATE(37)] = 2980, + [SMALL_STATE(38)] = 3058, + [SMALL_STATE(39)] = 3136, + [SMALL_STATE(40)] = 3214, + [SMALL_STATE(41)] = 3292, + [SMALL_STATE(42)] = 3370, + [SMALL_STATE(43)] = 3448, + [SMALL_STATE(44)] = 3526, + [SMALL_STATE(45)] = 3604, + [SMALL_STATE(46)] = 3682, + [SMALL_STATE(47)] = 3760, + [SMALL_STATE(48)] = 3838, + [SMALL_STATE(49)] = 3881, + [SMALL_STATE(50)] = 3924, + [SMALL_STATE(51)] = 3967, + [SMALL_STATE(52)] = 4010, + [SMALL_STATE(53)] = 4053, + [SMALL_STATE(54)] = 4115, + [SMALL_STATE(55)] = 4177, + [SMALL_STATE(56)] = 4239, + [SMALL_STATE(57)] = 4301, + [SMALL_STATE(58)] = 4363, + [SMALL_STATE(59)] = 4425, + [SMALL_STATE(60)] = 4487, + [SMALL_STATE(61)] = 4549, + [SMALL_STATE(62)] = 4611, + [SMALL_STATE(63)] = 4673, + [SMALL_STATE(64)] = 4708, + [SMALL_STATE(65)] = 4743, + [SMALL_STATE(66)] = 4778, + [SMALL_STATE(67)] = 4813, + [SMALL_STATE(68)] = 4848, + [SMALL_STATE(69)] = 4883, + [SMALL_STATE(70)] = 4918, + [SMALL_STATE(71)] = 4952, + [SMALL_STATE(72)] = 4986, + [SMALL_STATE(73)] = 5020, + [SMALL_STATE(74)] = 5054, + [SMALL_STATE(75)] = 5088, + [SMALL_STATE(76)] = 5129, + [SMALL_STATE(77)] = 5188, + [SMALL_STATE(78)] = 5229, + [SMALL_STATE(79)] = 5262, + [SMALL_STATE(80)] = 5321, + [SMALL_STATE(81)] = 5380, + [SMALL_STATE(82)] = 5427, + [SMALL_STATE(83)] = 5470, + [SMALL_STATE(84)] = 5517, + [SMALL_STATE(85)] = 5572, + [SMALL_STATE(86)] = 5625, + [SMALL_STATE(87)] = 5676, + [SMALL_STATE(88)] = 5725, + [SMALL_STATE(89)] = 5758, + [SMALL_STATE(90)] = 5817, + [SMALL_STATE(91)] = 5849, + [SMALL_STATE(92)] = 5881, + [SMALL_STATE(93)] = 5913, + [SMALL_STATE(94)] = 5945, + [SMALL_STATE(95)] = 5977, + [SMALL_STATE(96)] = 6009, + [SMALL_STATE(97)] = 6041, + [SMALL_STATE(98)] = 6073, + [SMALL_STATE(99)] = 6105, + [SMALL_STATE(100)] = 6137, + [SMALL_STATE(101)] = 6169, + [SMALL_STATE(102)] = 6201, + [SMALL_STATE(103)] = 6233, + [SMALL_STATE(104)] = 6265, + [SMALL_STATE(105)] = 6297, + [SMALL_STATE(106)] = 6354, + [SMALL_STATE(107)] = 6411, + [SMALL_STATE(108)] = 6469, + [SMALL_STATE(109)] = 6529, + [SMALL_STATE(110)] = 6589, + [SMALL_STATE(111)] = 6645, + [SMALL_STATE(112)] = 6674, + [SMALL_STATE(113)] = 6729, + [SMALL_STATE(114)] = 6758, + [SMALL_STATE(115)] = 6787, + [SMALL_STATE(116)] = 6844, + [SMALL_STATE(117)] = 6873, + [SMALL_STATE(118)] = 6928, + [SMALL_STATE(119)] = 6957, + [SMALL_STATE(120)] = 6988, + [SMALL_STATE(121)] = 7017, + [SMALL_STATE(122)] = 7046, + [SMALL_STATE(123)] = 7075, + [SMALL_STATE(124)] = 7132, + [SMALL_STATE(125)] = 7189, + [SMALL_STATE(126)] = 7218, + [SMALL_STATE(127)] = 7247, + [SMALL_STATE(128)] = 7276, + [SMALL_STATE(129)] = 7307, + [SMALL_STATE(130)] = 7362, + [SMALL_STATE(131)] = 7390, + [SMALL_STATE(132)] = 7444, + [SMALL_STATE(133)] = 7472, + [SMALL_STATE(134)] = 7500, + [SMALL_STATE(135)] = 7554, + [SMALL_STATE(136)] = 7608, + [SMALL_STATE(137)] = 7662, + [SMALL_STATE(138)] = 7716, + [SMALL_STATE(139)] = 7770, + [SMALL_STATE(140)] = 7824, + [SMALL_STATE(141)] = 7878, + [SMALL_STATE(142)] = 7932, + [SMALL_STATE(143)] = 7959, + [SMALL_STATE(144)] = 7986, + [SMALL_STATE(145)] = 8013, + [SMALL_STATE(146)] = 8040, + [SMALL_STATE(147)] = 8067, + [SMALL_STATE(148)] = 8094, + [SMALL_STATE(149)] = 8121, + [SMALL_STATE(150)] = 8148, + [SMALL_STATE(151)] = 8175, + [SMALL_STATE(152)] = 8202, + [SMALL_STATE(153)] = 8229, + [SMALL_STATE(154)] = 8251, + [SMALL_STATE(155)] = 8273, + [SMALL_STATE(156)] = 8299, + [SMALL_STATE(157)] = 8322, + [SMALL_STATE(158)] = 8347, + [SMALL_STATE(159)] = 8370, + [SMALL_STATE(160)] = 8392, + [SMALL_STATE(161)] = 8414, + [SMALL_STATE(162)] = 8436, + [SMALL_STATE(163)] = 8458, + [SMALL_STATE(164)] = 8478, + [SMALL_STATE(165)] = 8497, + [SMALL_STATE(166)] = 8507, + [SMALL_STATE(167)] = 8523, + [SMALL_STATE(168)] = 8537, + [SMALL_STATE(169)] = 8553, + [SMALL_STATE(170)] = 8563, + [SMALL_STATE(171)] = 8579, + [SMALL_STATE(172)] = 8589, + [SMALL_STATE(173)] = 8605, + [SMALL_STATE(174)] = 8621, + [SMALL_STATE(175)] = 8631, + [SMALL_STATE(176)] = 8641, + [SMALL_STATE(177)] = 8653, + [SMALL_STATE(178)] = 8666, + [SMALL_STATE(179)] = 8679, + [SMALL_STATE(180)] = 8692, + [SMALL_STATE(181)] = 8701, + [SMALL_STATE(182)] = 8714, + [SMALL_STATE(183)] = 8727, + [SMALL_STATE(184)] = 8740, + [SMALL_STATE(185)] = 8753, + [SMALL_STATE(186)] = 8766, + [SMALL_STATE(187)] = 8779, + [SMALL_STATE(188)] = 8792, + [SMALL_STATE(189)] = 8805, + [SMALL_STATE(190)] = 8818, + [SMALL_STATE(191)] = 8831, + [SMALL_STATE(192)] = 8844, + [SMALL_STATE(193)] = 8857, + [SMALL_STATE(194)] = 8870, + [SMALL_STATE(195)] = 8883, + [SMALL_STATE(196)] = 8896, + [SMALL_STATE(197)] = 8907, + [SMALL_STATE(198)] = 8920, + [SMALL_STATE(199)] = 8931, + [SMALL_STATE(200)] = 8944, + [SMALL_STATE(201)] = 8954, + [SMALL_STATE(202)] = 8964, + [SMALL_STATE(203)] = 8974, + [SMALL_STATE(204)] = 8984, + [SMALL_STATE(205)] = 8992, + [SMALL_STATE(206)] = 9002, + [SMALL_STATE(207)] = 9012, + [SMALL_STATE(208)] = 9022, + [SMALL_STATE(209)] = 9030, + [SMALL_STATE(210)] = 9040, + [SMALL_STATE(211)] = 9050, + [SMALL_STATE(212)] = 9058, + [SMALL_STATE(213)] = 9068, + [SMALL_STATE(214)] = 9078, + [SMALL_STATE(215)] = 9085, + [SMALL_STATE(216)] = 9092, + [SMALL_STATE(217)] = 9099, + [SMALL_STATE(218)] = 9106, + [SMALL_STATE(219)] = 9113, + [SMALL_STATE(220)] = 9120, + [SMALL_STATE(221)] = 9127, + [SMALL_STATE(222)] = 9134, + [SMALL_STATE(223)] = 9141, + [SMALL_STATE(224)] = 9148, + [SMALL_STATE(225)] = 9155, + [SMALL_STATE(226)] = 9162, }; static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), - [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), - [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(197), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(204), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), - [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62), - [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function, 3, .production_id = 11), - [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function, 3, .production_id = 11), - [79] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), - [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76), - [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [105] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 5), - [107] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 5), - [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2), - [111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2), - [113] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, .production_id = 16), - [115] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ternary_expression, 5, .production_id = 16), - [117] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_expression, 2, .production_id = 2), - [119] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_expression, 2, .production_id = 2), - [121] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 3, .production_id = 3), - [123] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_expression, 3, .production_id = 3), - [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_special_variable, 2), - [127] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_special_variable, 2), - [129] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_name, 1), - [131] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_name, 1), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1), - [135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1), - [137] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3), - [139] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3), - [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1), - [143] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1), - [147] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 4, .production_id = 12), - [151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 4, .production_id = 12), - [153] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, .production_id = 8), - [155] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, .production_id = 8), - [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4), - [159] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4), - [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3), - [163] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3), - [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1), - [167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, .production_id = 12), - [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, .production_id = 12), - [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3), - [179] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3), - [181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(172), - [186] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(37), - [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(214), - [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(220), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(216), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(218), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(47), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(197), - [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(196), - [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(203), - [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(205), - [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(206), - [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(150), - [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(215), - [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2), SHIFT_REPEAT(209), - [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2), - [230] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2), - [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4), - [234] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4), - [236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2), - [238] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 5), - [242] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 5), - [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 7, .production_id = 19), - [246] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 7, .production_id = 19), - [248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 5, .production_id = 15), - [250] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 5, .production_id = 15), - [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5), - [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 5), - [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(172), - [259] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(46), - [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(214), - [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(220), - [268] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(216), - [271] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(47), - [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2), - [276] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(197), - [279] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(196), - [282] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(203), - [285] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(205), - [288] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(206), - [291] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(150), - [294] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(215), - [297] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2), SHIFT_REPEAT(209), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_declaration, 5, .production_id = 10), - [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_declaration, 5, .production_id = 10), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 2), - [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 2), - [346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 2), - [348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 2), - [350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 4), - [352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 4), - [354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 4), - [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 4), - [358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 3), - [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 3), - [362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 3), - [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 3), - [366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 5), - [368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 5), - [370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 4, .production_id = 9), - [372] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 4, .production_id = 9), - [374] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 3), - [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 3), - [378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 8, .production_id = 18), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 8, .production_id = 18), - [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 9, .production_id = 20), - [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 9, .production_id = 20), - [386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 6, .production_id = 14), - [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 6, .production_id = 14), - [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_cell, 1), - [392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_each, 2), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__list_cell, 1), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, .production_id = 5), - [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_intersection_for_block, 3, .production_id = 3), - [410] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_intersection_for_block, 3, .production_id = 3), - [412] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_modifier_chain, 2), - [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_modifier_chain, 2), - [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_transform_chain, 2), - [420] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_transform_chain, 2), - [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_block, 2), - [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_block, 2), - [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, .production_id = 2), - [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 2, .production_id = 2), - [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include_statement, 2), - [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include_statement, 2), - [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_block, 5, .production_id = 13), - [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_block, 5, .production_id = 13), - [448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_block, 3), - [450] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_block, 3), - [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_block, 3, .production_id = 3), - [454] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_block, 3, .production_id = 3), - [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_block, 3, .production_id = 3), - [458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_block, 3, .production_id = 3), - [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_block, 3, .production_id = 3), - [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_block, 3, .production_id = 3), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assert_clause_repeat1, 2), - [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_block, 3, .production_id = 4), - [472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_block, 3, .production_id = 4), - [474] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 2), - [484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__item, 2), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, .production_id = 7), - [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 4, .production_id = 7), - [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, .production_id = 24), - [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, .production_id = 24), - [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 6, .production_id = 21), - [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 6, .production_id = 21), - [508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 6, .production_id = 22), - [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 6, .production_id = 22), - [512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 5, .production_id = 9), - [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 5, .production_id = 9), - [516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, .production_id = 23), - [518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, .production_id = 23), - [520] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 9, .production_id = 28), - [522] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 9, .production_id = 28), - [524] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, .production_id = 25), - [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, .production_id = 25), - [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_statement, 2), - [530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_statement, 2), - [532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 8, .production_id = 26), - [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 8, .production_id = 26), - [536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 8, .production_id = 27), - [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 8, .production_id = 27), - [540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_modifier, 1), - [542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_modifier, 1), - [544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_call, 2, .production_id = 1), - [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_call, 2, .production_id = 1), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), - [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), - [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), - [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), - [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 5, .production_id = 17), - [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_clause, 3), - [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 3, .production_id = 4), - [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 1), - [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_cell, 3), - [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesized_assignments_repeat1, 2), - [582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesized_assignments_repeat1, 2), SHIFT_REPEAT(161), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [603] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2), SHIFT_REPEAT(53), - [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), - [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [612] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_declaration_repeat1, 2), SHIFT_REPEAT(158), - [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_declaration_repeat1, 2), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), - [621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_declaration, 1, .production_id = 6), - [623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [629] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [631] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assert_clause_repeat1, 2), SHIFT_REPEAT(59), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183), + [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(226), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(209), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(213), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(201), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [61] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(94), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(98), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [73] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), + [81] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(183), + [84] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(11), + [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(226), + [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(222), + [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(221), + [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(223), + [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(15), + [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(206), + [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(205), + [108] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(207), + [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(200), + [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(209), + [117] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(154), + [120] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(224), + [123] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 0), SHIFT_REPEAT(217), + [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(183), + [129] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(13), + [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(226), + [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(222), + [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(221), + [141] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(15), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), + [146] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(206), + [149] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(205), + [152] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(207), + [155] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(200), + [158] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(209), + [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(154), + [164] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(224), + [167] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_union_block_repeat1, 2, 0, 0), SHIFT_REPEAT(217), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [186] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 3, 0, 0), + [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 3, 0, 0), + [190] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 4, 0, 0), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 4, 0, 0), + [194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [198] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 5, 0, 0), + [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 5, 0, 0), + [202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_arguments, 2, 0, 0), + [204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_arguments, 2, 0, 0), + [206] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203), + [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [228] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 3, 0, 0), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 3, 0, 0), + [232] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 3, 0, 0), + [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 3, 0, 0), + [236] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 4, 0, 0), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 4, 0, 0), + [240] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 4, 0, 0), + [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 4, 0, 0), + [244] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_assignments, 2, 0, 0), + [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_assignments, 2, 0, 0), + [248] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 5, 0, 0), + [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 5, 0, 0), + [252] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parameters_declaration, 2, 0, 0), + [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters_declaration, 2, 0, 0), + [256] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 4, 0, 9), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 4, 0, 9), + [260] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 9, 0, 20), + [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 9, 0, 20), + [264] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 6, 0, 14), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 6, 0, 14), + [268] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 3, 0, 0), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 3, 0, 0), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__assert_clause, 8, 0, 18), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__assert_clause, 8, 0, 18), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 5), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 5), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_expression, 2, 0, 2), + [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [290] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [298] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [302] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 0), + [310] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 0), + [312] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__variable_name, 1, 0, 0), + [314] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__variable_name, 1, 0, 0), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_lit, 3, 0, 10), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_expression, 3, 0, 3), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_special_variable, 2, 0, 0), + [322] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_special_variable, 2, 0, 0), + [324] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ternary_expression, 5, 0, 16), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 5, 0, 15), + [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 5, 0, 15), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4, 0, 0), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 0), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 0), + [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 0), + [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_number, 1, 0, 0), + [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_number, 1, 0, 0), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 0), + [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 0), + [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dot_index_expression, 3, 0, 11), + [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dot_index_expression, 3, 0, 11), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression, 4, 0, 11), + [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_index_expression, 4, 0, 11), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean, 1, 0, 0), + [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean, 1, 0, 0), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1, 0, 0), + [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1, 0, 0), + [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 2, 0, 8), + [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_call, 2, 0, 8), + [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 5, 0, 0), + [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [380] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_range, 7, 0, 19), + [384] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_range, 7, 0, 19), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_cell, 1, 0, 0), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_each, 2, 0, 0), + [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__list_cell, 1, 0, 0), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 5), + [404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_block, 2, 0, 0), + [406] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_block, 2, 0, 0), + [408] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2, 0, 0), + [410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_block, 3, 0, 3), + [412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_block, 3, 0, 3), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_intersection_for_block, 3, 0, 3), + [416] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_intersection_for_block, 3, 0, 3), + [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [422] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_modifier_chain, 2, 0, 0), + [424] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_modifier_chain, 2, 0, 0), + [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_transform_chain, 2, 0, 0), + [428] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_transform_chain, 2, 0, 0), + [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_block, 3, 0, 4), + [432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_block, 3, 0, 4), + [434] = {.entry = {.count = 1, .reusable = false}}, SHIFT(56), + [436] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 2), + [438] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assert_statement, 2, 0, 2), + [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_let_block, 3, 0, 3), + [442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_let_block, 3, 0, 3), + [444] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_union_block, 3, 0, 0), + [446] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_union_block, 3, 0, 0), + [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [456] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_block, 5, 0, 12), + [458] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_block, 5, 0, 12), + [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assign_block, 3, 0, 3), + [462] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_assign_block, 3, 0, 3), + [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_include_statement, 2, 0, 0), + [466] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_include_statement, 2, 0, 0), + [468] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__assert_clause_repeat1, 2, 0, 0), + [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_item, 6, 0, 13), + [474] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_item, 6, 0, 13), + [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 2, 0, 0), + [480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__item, 2, 0, 0), + [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_declaration, 4, 0, 7), + [484] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_declaration, 4, 0, 7), + [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 6, 0, 22), + [504] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 6, 0, 22), + [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_use_statement, 2, 0, 0), + [508] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_use_statement, 2, 0, 0), + [510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 5, 0, 9), + [512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 5, 0, 9), + [514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 6, 0, 21), + [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 6, 0, 21), + [518] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, 0, 24), + [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, 0, 24), + [522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 9, 0, 28), + [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 9, 0, 28), + [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, 0, 23), + [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, 0, 23), + [530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 7, 0, 25), + [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 7, 0, 25), + [534] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 8, 0, 26), + [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 8, 0, 26), + [538] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_condition_update_clause, 8, 0, 27), + [540] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_condition_update_clause, 8, 0, 27), + [542] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_module_call, 2, 0, 1), + [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module_call, 2, 0, 1), + [546] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_modifier, 1, 0, 0), + [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_modifier, 1, 0, 0), + [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_cell, 3, 0, 0), + [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parenthesized_assignments_repeat1, 2, 0, 0), + [580] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parenthesized_assignments_repeat1, 2, 0, 0), SHIFT_REPEAT(164), + [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [587] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), + [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 1, 0, 0), + [597] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0), + [599] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0), SHIFT_REPEAT(172), + [602] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 0), SHIFT_REPEAT(172), + [605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(93), + [607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [609] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), + [611] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_clause, 3, 0, 0), + [613] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 5, 0, 17), + [615] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 3, 0, 4), + [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [623] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(8), + [626] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), - [636] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(8), - [639] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [655] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), - [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [636] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__assert_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(46), + [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [643] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_arguments_repeat1, 2, 0, 0), SHIFT_REPEAT(20), + [646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [654] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_parameters_declaration_repeat1, 2, 0, 0), SHIFT_REPEAT(163), + [657] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_parameters_declaration_repeat1, 2, 0, 0), + [659] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameter_declaration, 1, 0, 6), + [661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [669] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [675] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [679] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), }; #ifdef __cplusplus extern "C" { #endif -#ifdef _WIN32 -#define extern __declspec(dllexport) +#ifdef TREE_SITTER_HIDE_SYMBOLS +#define TS_PUBLIC +#elif defined(_WIN32) +#define TS_PUBLIC __declspec(dllexport) +#else +#define TS_PUBLIC __attribute__((visibility("default"))) #endif -extern const TSLanguage *tree_sitter_openscad(void) { +TS_PUBLIC const TSLanguage *tree_sitter_openscad(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h new file mode 100644 index 0000000..1abdd12 --- /dev/null +++ b/src/tree_sitter/alloc.h @@ -0,0 +1,54 @@ +#ifndef TREE_SITTER_ALLOC_H_ +#define TREE_SITTER_ALLOC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +// Allow clients to override allocation functions +#ifdef TREE_SITTER_REUSE_ALLOCATOR + +extern void *(*ts_current_malloc)(size_t size); +extern void *(*ts_current_calloc)(size_t count, size_t size); +extern void *(*ts_current_realloc)(void *ptr, size_t size); +extern void (*ts_current_free)(void *ptr); + +#ifndef ts_malloc +#define ts_malloc ts_current_malloc +#endif +#ifndef ts_calloc +#define ts_calloc ts_current_calloc +#endif +#ifndef ts_realloc +#define ts_realloc ts_current_realloc +#endif +#ifndef ts_free +#define ts_free ts_current_free +#endif + +#else + +#ifndef ts_malloc +#define ts_malloc malloc +#endif +#ifndef ts_calloc +#define ts_calloc calloc +#endif +#ifndef ts_realloc +#define ts_realloc realloc +#endif +#ifndef ts_free +#define ts_free free +#endif + +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ALLOC_H_ diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h new file mode 100644 index 0000000..a17a574 --- /dev/null +++ b/src/tree_sitter/array.h @@ -0,0 +1,291 @@ +#ifndef TREE_SITTER_ARRAY_H_ +#define TREE_SITTER_ARRAY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./alloc.h" + +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4101) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +#define Array(T) \ + struct { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ + } + +/// Initialize an array. +#define array_init(self) \ + ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) + +/// Create an empty array. +#define array_new() \ + { NULL, 0, 0 } + +/// Get a pointer to the element at a given `index` in the array. +#define array_get(self, _index) \ + (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) + +/// Get a pointer to the first element in the array. +#define array_front(self) array_get(self, 0) + +/// Get a pointer to the last element in the array. +#define array_back(self) array_get(self, (self)->size - 1) + +/// Clear the array, setting its size to zero. Note that this does not free any +/// memory allocated for the array's contents. +#define array_clear(self) ((self)->size = 0) + +/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is +/// less than the array's current capacity, this function has no effect. +#define array_reserve(self, new_capacity) \ + _array__reserve((Array *)(self), array_elem_size(self), new_capacity) + +/// Free any memory allocated for this array. Note that this does not free any +/// memory allocated for the array's contents. +#define array_delete(self) _array__delete((Array *)(self)) + +/// Push a new `element` onto the end of the array. +#define array_push(self, element) \ + (_array__grow((Array *)(self), 1, array_elem_size(self)), \ + (self)->contents[(self)->size++] = (element)) + +/// Increase the array's size by `count` elements. +/// New elements are zero-initialized. +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + _array__grow((Array *)(self), count, array_elem_size(self)); \ + memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ + (self)->size += (count); \ + } while (0) + +/// Append all elements from one array to the end of another. +#define array_push_all(self, other) \ + array_extend((self), (other)->size, (other)->contents) + +/// Append `count` elements to the end of the array, reading their values from the +/// `contents` pointer. +#define array_extend(self, count, contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), (self)->size, \ + 0, count, contents \ + ) + +/// Remove `old_count` elements from the array starting at the given `index`. At +/// the same index, insert `new_count` new elements, reading their values from the +/// `new_contents` pointer. +#define array_splice(self, _index, old_count, new_count, new_contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), _index, \ + old_count, new_count, new_contents \ + ) + +/// Insert one `element` into the array at the given `index`. +#define array_insert(self, _index, element) \ + _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) + +/// Remove one element from the array at the given `index`. +#define array_erase(self, _index) \ + _array__erase((Array *)(self), array_elem_size(self), _index) + +/// Pop the last element off the array, returning the element by value. +#define array_pop(self) ((self)->contents[--(self)->size]) + +/// Assign the contents of one array to another, reallocating if necessary. +#define array_assign(self, other) \ + _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) + +/// Swap one array with another +#define array_swap(self, other) \ + _array__swap((Array *)(self), (Array *)(other)) + +/// Get the size of the array contents +#define array_elem_size(self) (sizeof *(self)->contents) + +/// Search a sorted array for a given `needle` value, using the given `compare` +/// callback to determine the order. +/// +/// If an existing element is found to be equal to `needle`, then the `index` +/// out-parameter is set to the existing value's index, and the `exists` +/// out-parameter is set to true. Otherwise, `index` is set to an index where +/// `needle` should be inserted in order to preserve the sorting, and `exists` +/// is set to false. +#define array_search_sorted_with(self, compare, needle, _index, _exists) \ + _array__search_sorted(self, 0, compare, , needle, _index, _exists) + +/// Search a sorted array for a given `needle` value, using integer comparisons +/// of a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_with`. +#define array_search_sorted_by(self, field, needle, _index, _exists) \ + _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) + +/// Insert a given `value` into a sorted array, using the given `compare` +/// callback to determine the order. +#define array_insert_sorted_with(self, compare, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +/// Insert a given `value` into a sorted array, using integer comparisons of +/// a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_by`. +#define array_insert_sorted_by(self, field, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +// Private + +typedef Array(void) Array; + +/// This is not what you're looking for, see `array_delete`. +static inline void _array__delete(Array *self) { + if (self->contents) { + ts_free(self->contents); + self->contents = NULL; + self->size = 0; + self->capacity = 0; + } +} + +/// This is not what you're looking for, see `array_erase`. +static inline void _array__erase(Array *self, size_t element_size, + uint32_t index) { + assert(index < self->size); + char *contents = (char *)self->contents; + memmove(contents + index * element_size, contents + (index + 1) * element_size, + (self->size - index - 1) * element_size); + self->size--; +} + +/// This is not what you're looking for, see `array_reserve`. +static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { + if (new_capacity > self->capacity) { + if (self->contents) { + self->contents = ts_realloc(self->contents, new_capacity * element_size); + } else { + self->contents = ts_malloc(new_capacity * element_size); + } + self->capacity = new_capacity; + } +} + +/// This is not what you're looking for, see `array_assign`. +static inline void _array__assign(Array *self, const Array *other, size_t element_size) { + _array__reserve(self, element_size, other->size); + self->size = other->size; + memcpy(self->contents, other->contents, self->size * element_size); +} + +/// This is not what you're looking for, see `array_swap`. +static inline void _array__swap(Array *self, Array *other) { + Array swap = *other; + *other = *self; + *self = swap; +} + +/// This is not what you're looking for, see `array_push` or `array_grow_by`. +static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { + uint32_t new_size = self->size + count; + if (new_size > self->capacity) { + uint32_t new_capacity = self->capacity * 2; + if (new_capacity < 8) new_capacity = 8; + if (new_capacity < new_size) new_capacity = new_size; + _array__reserve(self, element_size, new_capacity); + } +} + +/// This is not what you're looking for, see `array_splice`. +static inline void _array__splice(Array *self, size_t element_size, + uint32_t index, uint32_t old_count, + uint32_t new_count, const void *elements) { + uint32_t new_size = self->size + new_count - old_count; + uint32_t old_end = index + old_count; + uint32_t new_end = index + new_count; + assert(old_end <= self->size); + + _array__reserve(self, element_size, new_size); + + char *contents = (char *)self->contents; + if (self->size > old_end) { + memmove( + contents + new_end * element_size, + contents + old_end * element_size, + (self->size - old_end) * element_size + ); + } + if (new_count > 0) { + if (elements) { + memcpy( + (contents + index * element_size), + elements, + new_count * element_size + ); + } else { + memset( + (contents + index * element_size), + 0, + new_count * element_size + ); + } + } + self->size += new_count - old_count; +} + +/// A binary search routine, based on Rust's `std::slice::binary_search_by`. +/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. +#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ + do { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) break; \ + int comparison; \ + while (size > 1) { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) *(_exists) = true; \ + else if (comparison < 0) *(_index) += 1; \ + } while (0) + +/// Helper macro for the `_sorted_by` routines below. This takes the left (existing) +/// parameter by reference in order to work with the generic sorting function above. +#define _compare_int(a, b) ((int)*(a) - (int)(b)) + +#ifdef _MSC_VER +#pragma warning(pop) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ARRAY_H_ diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 2b14ac1..799f599 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -13,9 +13,8 @@ extern "C" { #define ts_builtin_sym_end 0 #define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 -typedef uint16_t TSStateId; - #ifndef TREE_SITTER_API_H_ +typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; @@ -48,6 +47,7 @@ struct TSLexer { uint32_t (*get_column)(TSLexer *); bool (*is_at_included_range_start)(const TSLexer *); bool (*eof)(const TSLexer *); + void (*log)(const TSLexer *, const char *, ...); }; typedef enum { @@ -87,6 +87,11 @@ typedef union { } entry; } TSParseActionEntry; +typedef struct { + int32_t start; + int32_t end; +} TSCharacterRange; + struct TSLanguage { uint32_t version; uint32_t symbol_count; @@ -126,13 +131,38 @@ struct TSLanguage { const TSStateId *primary_state_ids; }; +static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + TSCharacterRange *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) { + return true; + } else if (lookahead > range->end) { + index = mid_index; + } + size -= half_size; + } + TSCharacterRange *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); +} + /* * Lexer Macros */ +#ifdef _MSC_VER +#define UNUSED __pragma(warning(suppress : 4101)) +#else +#define UNUSED __attribute__((unused)) +#endif + #define START_LEXER() \ bool result = false; \ bool skip = false; \ + UNUSED \ bool eof = false; \ int32_t lookahead; \ goto start; \ @@ -148,6 +178,17 @@ struct TSLanguage { goto next_state; \ } +#define ADVANCE_MAP(...) \ + { \ + static const uint16_t map[] = { __VA_ARGS__ }; \ + for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ + if (map[i] == lookahead) { \ + state = map[i + 1]; \ + goto next_state; \ + } \ + } \ + } + #define SKIP(state_value) \ { \ skip = true; \ @@ -166,7 +207,7 @@ struct TSLanguage { * Parse Table Macros */ -#define SMALL_STATE(id) id - LARGE_STATE_COUNT +#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) #define STATE(id) id @@ -176,7 +217,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value \ + .state = (state_value) \ } \ }} @@ -184,7 +225,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value, \ + .state = (state_value), \ .repetition = true \ } \ }} @@ -197,14 +238,15 @@ struct TSLanguage { } \ }} -#define REDUCE(symbol_val, child_count_val, ...) \ - {{ \ - .reduce = { \ - .type = TSParseActionTypeReduce, \ - .symbol = symbol_val, \ - .child_count = child_count_val, \ - __VA_ARGS__ \ - }, \ +#define REDUCE(symbol_name, children, precedence, prod_id) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id \ + }, \ }} #define RECOVER() \ diff --git a/test/corpus/items.txt b/test/corpus/items.txt index 7d76ef8..1c2e261 100644 --- a/test/corpus/items.txt +++ b/test/corpus/items.txt @@ -46,7 +46,7 @@ module comma1(x,) {} (assignment (identifier) (boolean)) - (function_declaration + (function_item (identifier) (parameters_declaration (parameter @@ -83,11 +83,11 @@ module comma1(x,) {} (identifier) (parameters_declaration) (union_block)) - (function_declaration + (function_item (identifier) (parameters_declaration) (decimal)) - (function_declaration + (function_item (identifier) (parameters_declaration (parameter @@ -121,7 +121,7 @@ module extern_module() include name: (identifier) parameters: (parameters_declaration) body: (union_block - (function_declaration + (function_item name: (identifier) parameters: (parameters_declaration) (undef)) @@ -159,7 +159,7 @@ module my_cylinder() { (assignment (identifier) (decimal)) - (function_declaration + (function_item (identifier) (parameters_declaration (parameter @@ -167,8 +167,8 @@ module my_cylinder() { (comment) (binary_expression (identifier) - (decimal))) - (comment) + (decimal)) + (comment)) (module_declaration (identifier) (parameters_declaration) diff --git a/test/corpus/literals.txt b/test/corpus/literals.txt index fd19f62..3979557 100644 --- a/test/corpus/literals.txt +++ b/test/corpus/literals.txt @@ -1,8 +1,22 @@ +================================================================================ +Escaped string +================================================================================ +esc = "\\"; +// comment with double quote " +-------------------------------------------------------------------------------- + +(source_file + (assignment + (identifier) + (string)) + (comment)) + ================================================================================ All Literals ================================================================================ num = -4.3; name = "Karl"; +esc = "\\"; boolean = true; list = [1, 2, each [3, 4], [5, 6]]; trailing_comma_list = [[1, 2,],]; @@ -18,6 +32,9 @@ comprehension = [for (x = 0; x < 5; x = x + 2) 12]; (assignment (identifier) (string)) + (assignment + (identifier) + (string)) (assignment (identifier) (boolean)) @@ -47,7 +64,7 @@ comprehension = [for (x = 0; x < 5; x = x + 2) 12]; (decimal))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier)) @@ -377,7 +394,7 @@ each_if = [each if (len(a) < 5) 10 else 15, each if (len(str_list) < 5) true]; (identifier) (list (each - (function + (function_lit (parameters_declaration) (decimal))))) (assignment diff --git a/test/corpus/operators.txt b/test/corpus/operators.txt index fe9bafc..9b45a7d 100644 --- a/test/corpus/operators.txt +++ b/test/corpus/operators.txt @@ -102,7 +102,7 @@ echo(true && 4 == 4); -------------------------------------------------------------------------------- (source_file - (function_declaration + (function_item (identifier) (parameters_declaration (parameter @@ -115,7 +115,7 @@ echo(true && 4 == 4); (arguments (string) (identifier)))))) - (function_declaration + (function_item (identifier) (parameters_declaration (parameter @@ -239,14 +239,14 @@ indexer = function(v) v[0]; (source_file (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier))) (identifier))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier))) @@ -258,7 +258,7 @@ indexer = function(v) v[0]; (identifier) (function_call (parenthesized_expression - (function + (function_lit (parameters_declaration (parameter (identifier))) @@ -267,7 +267,7 @@ indexer = function(v) v[0]; (decimal)))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier)) @@ -278,7 +278,7 @@ indexer = function(v) v[0]; (identifier)))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier)) @@ -289,7 +289,7 @@ indexer = function(v) v[0]; (identifier)))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier))) @@ -308,7 +308,7 @@ echo(function(y) y ? "first" : "second"); (source_file (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier))) @@ -325,7 +325,7 @@ echo(function(y) y ? "first" : "second"); (module_call (identifier) (arguments - (function + (function_lit (parameters_declaration (parameter (identifier))) @@ -353,7 +353,7 @@ echo(assert(true) assert(false) true); (decimal))) (assignment (identifier) - (function + (function_lit (parameters_declaration (parameter (identifier))) diff --git a/tree-sitter.json b/tree-sitter.json new file mode 100644 index 0000000..1f27c52 --- /dev/null +++ b/tree-sitter.json @@ -0,0 +1,35 @@ +{ + "grammars": [ + { + "name": "openscad", + "camelcase": "Openscad", + "scope": "source.openscad", + "path": ".", + "file-types": [ + "scad" + ] + } + ], + "metadata": { + "version": "0.5.1", + "license": "MIT", + "description": "OpenSCAD grammar for tree-sitter", + "authors": [ + { + "name": "Ian Boll", + "email": "mainbollian@gmail.com" + } + ], + "links": { + "repository": "https://github.com/bollian/tree-sitter-openscad" + } + }, + "bindings": { + "c": true, + "go": true, + "node": true, + "python": true, + "rust": true, + "swift": true + } +}